Die einfachste Art, E-Mail in PHP zu versenden, ist noch immer via nativer PHP-Funktion mail().
mail()
ist Vorsicht geboten!$_GET
oder $_POST
) dem vierten Parameter $additional_headers
übergeben werden. Dieser kann für Spamming missbraucht werden!From
und Return-Path
korrekt im Parameter $additional_headers
setzen. Ansonsten werden Ihre E-Mails unter Umständen vom Spam-Filter des Empfängers abgeblockt.
Wir empfehlen Ihnen, auch weitere Header in $additional_headers
setzen. Folgendes Beispiel gilt als empfohlene Vorlage:
<?php $to = 'recipient@example.com'; $from = 'sender@example.com'; $subject = 'Testmail 1'; $message = <<<EOD Hi there This is just an example email body from $from Bye-Bye! EOD; $headers = "Reply-To: $from\r\n"; $headers .= "Return-Path: $from\r\n"; $headers .= "From: $from\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n"; $headers .= "Content-Transfer-Encoding: binary"; $headers .= "X-Priority: 3\r\n"; $headers .= "X-Mailer: PHP ". phpversion() ."\r\n"; mail($to, $subject, $message, $headers);
Wir empfehlen Ihnen, Zend_Mail
für den komfortablen und sicheren Versand Ihrer E-Mails zu verwenden. Sie brauchen dazu nicht zwingend etwas von Zend Framework zu verstehen. Zend Framework ist bereits durch Onlime Webhosting auf dem Webserver installiert und wird stets auf dem aktuellsten Stand gehalten.
In unten stehendem Beispiel sehen Sie, wie einfach es ist, Zend Framework mittels wenigen Zeilen zu konfigurieren. Speichern Sie dieses ZF-Bootstrapping in eine Datei namens zf-bootstrap.php
:
<?php // Define Zend Framework path defined('ZF_PATH') || define('ZF_PATH', '/var/www/shared/zend'); // Ensure Zend Framework library is on include_path set_include_path(implode(PATH_SEPARATOR, array( ZF_PATH . '/library', get_include_path(), ))); date_default_timezone_set('Europe/Zurich'); // load Zend base class require_once 'Zend/Loader/Autoloader.php'; $loader = Zend_Loader_Autoloader::getInstance();
Sie können nun ganz komfortabel eine E-Mail mittels der selbsterklärenden Methoden-Aufrufen von Zend_Mail
erstellen und versenden:
require_once 'zf-bootstrap.php'; $to = 'recipient@example.com'; $from = 'sender@example.com'; $fromName = 'Hans Muster'; $subject = 'Testmail 1'; $message = <<<EOD Hi there This is just an example email body from $from Bye-Bye! EOD; $mail = new Zend_Mail('utf-8'); $mail->setBodyText($message) ->setFrom($from, $fromName) ->setReturnPath($from) ->addTo($to) ->setSubject($subject) ->send();
Hier eine kurze Auflistung einiger weiteren gängigen Methoden:
addBcc(string|array $email)
addCc(string|array $email, string $name)
addHeader(string $name, string $value, boolean $append = false)
Die restlichen Methoden entnehmen Sie bitte der Zend Framework API Documentation.
Zend_Mail
ermöglicht auch den Versand via SMTP Auth. Konfigurieren Sie Zend_Mail
via Zend_Mail::setDefaultTransport()
einfach in Ihrem Bootstrapping vor dem ersten Instanzieren von Zend_Mail
:$config = array( 'auth' => 'login', 'ssl' => 'tls', 'port' => 587, 'username' => 'webXXpY', 'password' => '********', ); $transport = new Zend_Mail_Transport_Smtp('smtp.onlime.ch', $config); Zend_Mail::setDefaultTransport($transport);