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“).