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:
- eZMail Dokumentation (PHP)