Web Development

Ein Lehrbuch für das Informatik oder Medien-Informatik Studium.

Die Funktion zum Senden von E-Mail heißt mail:

mail(
   "[email protected]",
   "Just another SPAM",
   "Das ist der Text in der E-Mail"
);

Dazu passend wieder der “Here-Document” Trick, viel Text in einen langen String zu schreiben:

$text <<<Ende
   Lieber Newsletter-Kunde!
   wir freuen uns, dass Sie unseren
   Newsletter zum Thema $thema
   abonniert haben.
Ende;
mail("[email protected]", "Just another $thema-Newsletter", $text);

Wenn man englische Überschriften und Texte versendet ist das schon gut genug. Für andere Sprachen und Emojis braucht man encoding für die Überschrift und ein paar zusätzliche Header:

function mail_utf8($to, $subject, $message)
{
    $encoded_subject = "=?UTF-8?B?" . base64_encode($subject) . "?=";
    $headers = [
        "MIME-Version: 1.0",
        "Content-Type: text/plain; charset=utf-8",
        "Content-Transfer-Encoding: 8bit"
    ];
    return mail($to, $encoded_subject, $message, implode("\r\n", $headers));
}

Wie die Mail vom PHP-Interpreter versandt wird, ist in der PHP- Konfiguration festgelegt. Die Konfigurations-Datei hat den Namen php.ini. Wenn man PHP auf dem eigenen Computer betreibt, kann man den SMTP-Server des Providers eintragen um die ausgehende Mail über diesen Server zu versenden:

;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;
[mail function]
SMTP = mail.provider.at
sendmail_from = [email protected]

Der Befehl phpinfo() gibt die ganze Konfiguration von PHP aus. Hier kann man auch die Mail-Konfiguration nachlesen:

Abbildung 138: Konfiguration von PHP für Mail