E-Mail Versand mit PHP

Um mit PHP E-Mails zu versenden ist es notwendig, dass diese per SMTP verschickt werden und nicht der eingebauten mail() Funktion von PHP. Die mail() Funktion steht in unseren PHP Containern nicht zur Verfügung.

Für den Versand per SMTP gibt es unter PHP viele Möglichkeiten. Als sehr gut haben sich PHPmailer, SwiftMailer und PEAR's Mail. erwiesen. PEAR's Mail ist in unseren PHP Containern vorinstalliert und kann direkt verwendet werden. Beispiel mit PHPmailer

Beispiel mit PHPMailer

require_once('../class.phpmailer.php');
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth   = true;
$mail->SMTPSecure = "tls";
$mail->Host       = "smtp.mx.pyrox.eu";
$mail->Username   = "website@example.com";
$mail->Password   = "super-sicheres-passwort";
$mail->From       = "website@example.com";
$mail->FromName   = "Beispiel Website";
$mail->To         = "max.mustermann@example.com";
$mail->Subject    = "Test E-Mail";
$mail->Body       = "Test\n1\n2\n3";
$mail->Send();

Beispiel mit SwiftMailer

require_once 'lib/swift_required.php';
$transport = Swift_SmtpTransport::newInstance()
    ->setHost('smtp.mx.pyrox.eu')
    ->setPort(25)
    ->setEncryption('tls')
    ->setUsername('website@example.com')
    ->setPassword('super-sicheres-passwort');
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance()
    ->setFrom(array('website@example.com')
    ->setTo(array('max.mustermann@example.com')
    ->setSubject('Test E-Mail')
    ->setBody('Test\n1\n2\n3');
$mailer->send($message);

Beispiel mit PEAR's Mail

require_once "Mail.php";
$smtp = Mail::factory('smtp', array(
    'host'     => "smtp.mx.pyrox.eu",
    'auth'     => true,
    'username' => "website@example.com",
    'password' => "super-sicheres-passwort"));
$headers = array(
    'From'    => "website@example.com",
    'To'      => "max.mustermann@example.com",
    'Subject' => "Beispiel E-Mail");
$body = "Test\n1\n2\n3";
$smtp->send($to, $headers, $body);