<?php // eMail-Adresse des Mail-Empfängers $to = "Empfaenger <empfaenger@domainname.de>"; // eMail-Adresse vom Absender $from = "Absender <absender@domainname.de>"; // Mailtext im Plain-Format (deutscher und englischer Text untereinander)... $plain = "Über die Anmeldung ------------------ Hier finden Sie Informationen zu Ihrem neuen Account. About Registration ------------------ Here you find more information about your account. "; // Inhalt nach Quoted-Printable konvertieren $plain = imap_8bit ($plain); // und im HTML-Format (mit eingebettetem Logo und Flaggen zum Anklicken, die // zur jeweiligen Sprachversion führen). $html = " <html> <head> <title>Titel der Seite</title> </head> <body> <img alt=\"EvoComp Logo\" src=\"cid:logo\" /> <a href=\"#en\"><img border=\"0\" alt=\"englisch\" src=\"cid:en\" /></a> • <a href=\"#de\"><img border=\"0\" alt=\"Deutsch\" src=\"cid:de\" /></a> <a name=\"de\"><h1>Über die Anmeldung</h1> <p>Hier finden Sie Informationen zu Ihrem neuen Account.</p> <a name=\"en\"><h1>About registration</h1></a> <p>Here you find more information about your account.</p> </body> </html>"; // Inhalt nach Quoted-Printable konvertieren $html = imap_8bit ($html); // Trenner zur Trennung von Teilbereichen in der Mail $boundary = strtoupper (md5 (uniqid (time ()))); // Plain-Text und HTML-Version der eMail im Header zusammenstellen $header = // Header für die Absenderadresse "From: $from\r\n" . // Angabe der genutzten Mime-Type-Version "MIME-Version: 1.0\r\n" . // Content-Type, der besagt, dass die eMail mehrere alternative Darstellungen // (Quellformate Plain-Text und HTML) enthält. Die Trennung der Versionen erfolgt // mittels des in Boundary angegebenen Trennerstrings. // Die erste Ebene (Trennung von Plain-Text- und HTML-Version) wird mit dem // Suffix _top unterschieden. "Content-Type: multipart/alternative; boundary=\"" . $boundary . "_top\"\r\n\r\n" . // Einleitung der ersten (Plain-Text) Version unter Angabe der Kodierung und dem // Mime-Type (text/html). "--" . $boundary . "_top\r\n" . "Content-Type: text/plain; charset=\"utf-8\"\r\n" . "Content-Transfer-Encoding: quoted-printable\r\n\r\n" . // Textversion der Mail. $plain . "\r\n" . // Einleitung der alternativen Version (Mail im HTML-Code); immernoch erste // Ebene. "--" . $boundary . "_top\r\n" . // Anfang des Unterbereichs, welcher zur Trennung von Teilbereichen den Suffix // _sub verwendet (boundary). Als Content-Type wird multipart/related angegeben. // Hierdurch wird festgelegt, dass das Dokument weitere Unterelemente (im Beispiel // die eingebetteten Bilder) enthällt. "Content-Type: multipart/related; boundary=\"" . $boundary . "_sub\"\r\n\r\n" . // Einleiten des ersten enthaltenen Elements (das eigentliche HTML-Dokument) "--" . $boundary . "_sub\r\n" . // Angaben zum verwendeten Mime-Type der HTML-Variante (text/html) und die // im HTML-Dokument verwendete Kodierung. "Content-Type: text/html; charset=\"utf-8\"\r\n" . "Content-Transfer-Encoding: quoted-printable\r\n\r\n" . // Einfügen des eigentlichen HTML-Dokuments. $html . "\r\n"; // Erster Inline-Anhang ist ein Logo $header .= // Auch hier wieder Einleitung des Attachments durch ein Trennerstring "--" . $boundary . "_sub\r\n" . // Vergabe eines eindeutigen Namens (id), unter dem das eingebettete // Element im HTML-Code angesprochen werden kann. "Content-ID: <logo>\r\n" . // Mime-Type des Objekts (hier ein JPG-Bild mit Mime-Type image/jpg) "Content-Type: image/jpg\r\n" . // Festlegung der Kodierung in Base64, da das Bild binäre Daten enthält "Content-Transfer-Encoding: base64\r\n" . "Content-Disposition: inline; filename=\"logo.jpg\"\r\n\r\n" . // Anhängen der zuvor kodierten Bilddatei, die aus dem Dateisystem des Webservers // entnommen wird. chunk_split (base64_encode (fread (fopen($_SERVER['DOCUMENT_ROOT'] . '/pic/logo_evocomp.jpg',"r"), filesize ($_SERVER['DOCUMENT_ROOT'] . '/pic/logo_evocomp.jpg')))); // Als nächstes Inline-Attachment wird ein Bild eingefügt, welches eine englische Flagge darstellt $header .= "--" . $boundary . "_sub\r\n" . "Content-ID: <en>\r\n" . "Content-Type: image/gif\r\n" . "Content-Transfer-Encoding: base64\r\n" . "Content-Disposition: inline; filename=\"en.gif\"\r\n\r\n" . chunk_split (base64_encode (fread (fopen($_SERVER['DOCUMENT_ROOT'] . '/pic/en.gif',"r"), filesize ($_SERVER['DOCUMENT_ROOT'] . '/pic/en.gif')))); // Das letzte Attachment stellt eine deutsche Flagge dar $header .= "--" . $boundary . "_sub\r\n" . "Content-ID: <de>\r\n" . "Content-Type: image/gif\r\n" . "Content-Transfer-Encoding: base64\r\n" . "Content-Disposition: inline; filename=\"de.gif\"\r\n\r\n" . chunk_split (base64_encode (fread (fopen($_SERVER['DOCUMENT_ROOT'] . '/pic/de.gif',"r"), filesize ($_SERVER['DOCUMENT_ROOT'] . '/pic/de.gif')))); // Letzter eingebetteter Bereich der HTML-Version erreicht $header .= "--" . $boundary . "_sub--\r\n"; // Abschluß der HTML-Version in erster Ebene $header .= "--" . $boundary . "_top--"; // Betreff zur eMail definieren... $subject = "Ihre Anmeldung bei uns"; // und am Ende des Scripts die zusammengestellte eMail versenden. mail ($to, $subject, '', $header); ?>
¬ Menu
¬ Gratis Download
¬ Tutorials
¬ Seminare
¬ Yoga
¬ Insolvenzrecht
¬ News
15.08.2008Schleifen in PHP: Die While-Schleife » mehr 13.08.2008Nutzung von Variablen unter PHP: Definition, Sichtbarkeit und vordefinierte Variablen » mehr 11.08.2008Ausgabe von Datum und Zeit mit PHP nach Konvertierung in ein String » mehr Eine vollständige News-Liste ist auf der News-Seite zugänglich.
¬ Foren
¬ Buchtipp
Einstieg in PHP 5.1 & MySQL 5, m. CD-ROM
Weitere PHP Bücher finden Sie unter PHP Literatur