HTML-E-Mail mit PHP erstellen
Eine HTML E-Mail mit PHP zu erstellen ist nicht schwierig. Dazu muss man nur wissen, wie man eine HTML-Seite erstellt und dass im Header der E-Mail der entsprechende MIME-Type mitgegeben wird. MIME steht für Internet Media Type (nach der Spezifikation Multipurpose Internet Mail Extensions, daher die Abkürzung).
Im Folgenden wird als erstes in der Variablen $mailtext die HTML-E-Mail erstellt. Diese kann auch auf dem Bildschirm ausgegeben werden und kommt dann wie eine normale HTML-Seite.
Die ersten 2 Zeilen beim Erstellen des Headers sind dafür zuständig, dass der korrekte MIME-Type eingestellt wird und der richtige Zeichensatz. Einfach probieren. Der Rest ist identisch mit der „normalen“ E-Mail im vorherigen Kapitel.
<?php
$mailtext = '<html>
<head>
<title>HTML-E-Mail mit PHP erstellen</title>
</head>
<body>
<h1>HTML-E-Mail mit PHP erstellen</h1>
<p>Diese E-Mail wurde mit PHP und HTML erstellt</p>
<table border="1">
<tr>
<td>Beschreibung</td>
<td>Anzahl Seiten</td>
</tr>
<tr>
<td>PHP lernen mit PHP-Kurs.com</td>
<td>über 100</td>
</tr>
</table>
<p>Die meisten HTML-Tags wie <b>fett</b>
und <i>kursiv</i> stehen zur
Verfügung</p>
</body>
</html>
';
$empfaenger = "du@example.com"; // Mailadresse
$absender = "ich@example.com";
$betreff = "Mail-Test - HTML-E-Mail mit PHP erstellen";
$antwortan = "ICH@example.com";
$header = "MIME-Version: 1.0\r\n";
$header .= "Content-type: text/html; charset=utf-8\r\n";
$header .= "From: $absender\r\n";
$header .= "Reply-To: $antwortan\r\n";
// $header .= "Cc: $cc\r\n"; // falls an CC gesendet werden soll
$header .= "X-Mailer: PHP ". phpversion();
mail( $empfaenger,
$betreff,
$mailtext,
$header);
echo "Mail wurde gesendet!";
?>
E-Mail werden nur Online versendet – probieren Sie dies unter einer Entwicklungsumgebung wie XAMPP, wird keine E-Mail losgesendet, obwohl alles korrekt ist. Das liegt dann daran, dass unter XAMPP keine E-Mail-Server etc. eingetragen sind.
Noch eine kleine Anmerkung: HTML-E-Mails sind nicht besonders gern gesehen, wenn es auch mit Text-E-Mails gehen würde.
Was gegen HTML-E-Mails spricht:
- In HTML-E-Mails kann jede Menge Quatsch transportiert werden,
- diese sind größer als notwendig,
- es kann im Hintergrund je nach Einstellungen des E-Mail-Programmes mit ein paar Kniffen kontrolliert werden, wann der Empfänger die erhaltene E-Mail angesehen hat (und auch ob er diese öfters angesehen hat).
Es sollte also einen guten Grund geben, warum Sie HTML-E-Mail anstatt normaler Text-E-Mails einsetzen (und bitte nicht mit dem Grund „es sieht schöner aus“).
Wenn Sie einen Fehler finden, bitte mitteilen (egal ob Schreibfehler oder inhaltlicher Fehler).
Mit Maus fehlerhafte Stelle markieren und übernehmen mit folgendem Button: