Home

E-Mails mit PHP versenden

Sonntag, 11. März 2007 | Autor: Pr0g

HTML & Text in einer E-Mail versenden

Da diese Art der E-Mail in der Nachricht zwei verschiedenen Datenpakete (HTML und Text) beinhaltet müssen diese eindeutig von einander getrennt werden, damit das E-Mail Programm des Benutzers später genau unterscheiden kann welche Daten zu welchem Teil gehören.

Dazu wird jedem Abschnitt eine Startmarkierung vorangesetzt und der letzte Abschnitt mit einer Endmarkierung beendet. Hinter der Startmarkierung folgt jeweils eine Angabe über den Typ des Inhalts, dann eine leere Zeile und zuletzt der Inhalt selbst.

Da die Markierungen mit einem Namen versehen werden müssen erzeugen wir einmalig vor dem Zusammensetzen unserer E-Mail einen zufälligen Namen mit Hilfe der Funktionen md5(), uniqid() und time(). Es gibt zahlreiche Möglichkeiten einen Namen oder eine Id zu generieren, dies ist eine davon. Unseren Zufallsnamen speichern wir dann in einer Variable:

$boundary md5(uniqid(time()));

Nun wird der “Content-Type” im Header wieder angepasst und der Name unserer Markierungen übergeben:

$headers .= 'Content-Type: multipart/alternative; boundary="' $boundary '"' "\r\n";

Was jetzt noch fehlt ist das passende Zusammensetzen der einzelnen Daten. Nehmen wir zuerst den Block für reinen Text, dann den HTML Code. Das Ergebnis für die Daten in $message der mail() Funktion müsste dann wie folgt aussehen:

--Blockname
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit

Zeile 1
Zeile 2

--Blockname
Content-Type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: 8bit

<html>
<head>
  <title>E-Mail Titel</title>
</head>
<body>
Diese E-Mail verwendet <b>HTML</b><br />
Zeile 2
</body>
</html>

--Blockname--

Die einzelnen Blöcke werden durch “--Blockname” eingeleitet (wobei Blockname später durch unsere Id ersetzt wird) und der letzte Block mit “--Blockname--” beendet.

Seiten: 1 2 3 4 5 6 7 8 9 10

Tags » , , , , , «

Trackback: Trackback-URL | Feed zum Beitrag: RSS 2.0
Thema: Artikel

Diesen Beitrag kommentieren.

3 Kommentare

  1. Hi,

    Anhand dem folgenden Beispiel wird beschrieben, wie man mit dem phpmailer eine einfache E-Mail versenden kann. http://www.phptoast.de/e-mails-versenden-mit-php/233/

  2. Es ist sicher eine nette Alternative, aber auf das Absenden komplexerer Emails mit Dateianhängen geht das (recht kurze) Beispiel nicht ein. Kann die Klasse das überhaupt, eine Erwähnung der Funktionen wäre sicherlich noch nett :)

  3. Na klar kann man mit der Klasse auch Mails mit Anhang versenden. Das kannst du über folgende Funktion relaisieren: AddAttachment()

    Eine detaillierte Dokumentation findest du hier:
    http://phpmailer.codeworxtech.com/index.php?pg=methods

Kommentar abgeben