Mails verschicken über PHP

Über eZ Publish gibt es eine ganz einfache Möglichkeit Mails zu versenden. Dazu reichen 8-9 Zeilen Code. 🙂

Die PHP-Klasse eZMail bietet alle Funktionen die man dazu braucht. Hier ein klassisches HTML Mail Beispiel:

    $mail = new eZMail();

    $mail->setContentType('text/html');

    $mail->setSender($email);
    $mail->setReceiver($email);
    $mail->setSubject('HTML - MAIL Template');

    $mailtpl =& templateInit();
    $mailcontent = $mailtpl->fetch('design:mail/'.$template.'.tpl');
    $mail->setBody($mailcontent);
    $mailResult = eZMailTransport::send($mail);

Kurze Erklärung der Befehle

Initialisierung der eZMail Klasse.

$mail = new eZMail();

SetContent muss nicht unbedingt gesetzt werden – Default wäre text/plain, dh. reiner Text.

$mail->setContentType('text/html');

Absender Mail Adresse

 $mail->setSender('dho@silversolutions.de');

Empfänger Mail Adresse

$mail->setReceiver('dho@silversolutions.de');

Betreff für die eMail

$mail->setSubject('eZMail Test');

Inhalt
Dazu muss man nicht unbedingt ein Template setzen, natürlich kann man auch hier direkt den Text reinschreiben. Die ersten beiden Befehle könnte man sich somit auch sparen.

// Fetch Template mail/*
$mailtpl =& templateInit();
$mailcontent = $mailtpl->fetch('design:mail/myownemail.tpl');
 
$mail->setBody($mailcontent);

Dieser Befehl ist für den Versand zuständig, die Funktion gibt weiters ein true/false zurück, je nachdem ob es alles geklappt hat.

$mailResult = eZMailTransport::send($mail);

Kurze Anmerkung:

Im Template muss das gesamte HTML Konstrukt eingebunden werden, eZ Publish macht dazu nichts. Natürlich kann man auch Mails mit Anhang versenden. Hier gibt es eine Liste der Befehle.

Weitere Links:

 

 

David Hohl

Seit 1995 Entwickler und Projektleiter. Langjährige Erfahrung mit eZ Publish. War von 2012 bis 2014 bei silver.solutions als Entwickler, Konzeptionen und Projektleiter für eZ Publish Projekte verantwortlich.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Sicherheitsfrage * Time limit is exhausted. Please reload CAPTCHA.