mit PHP eine multipart-E-Mail schreiben
RuD
- php
Seid gegrüßt!
ich versuche mittels PHP-mail() eine multipart-message zu verschicken, in welcher ein Bild angehangen ist, dass aber gleichzeitig ein Hintergrundbild des HTML-Teiles der E-Mail sein soll. Folgendes habe ich bereits:
function sendMimeMail($senderName, $senderEmail, $recName, $recEmail, $picture, $text) {
$boundary1 = strtoupper(md5(uniqid(time())));
$boundary2 = strtoupper(md5(uniqid(time())));
$datei_inhalt = chunk_split(base64_encode(fread(fopen("pictures/" . $picture, "r"), filesize("pictures/" . $picture))));
$mail = "MIME-Version: 1.0\n";
$mail .= "Content-Type: multipart/alternative; boundary=\"" . $boundary1 . "\"\n\n";
// TEXTTEIL
$mail .= "--" . $boundary1 . "\n";
$mail .= "Content-Type: text/plain; charset = \"iso-8859-1\"\n";
$mail .= "Content-Transfer-Encoding: 8bit\n\n";
$mail .= $text . "\n\n\n";
//HTMLTEIL
$mail .= "--" . $boundary1 . "\n";
$mail .= "Content-Type: multipart/related; boundary=\"" . $boundary2 . "\"\n\n";
$mail .= "--" . $boundary2 . "\n";
$mail .= "Content-Type: text/html; charset = \"iso-8859-1\"\n";
$mail .= "Content-Transfer-Encoding: 8bit\n\n";
$mail .= "
[code lang=html]
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">
<html>
<head>
<title></title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
</head>
<body>
<table width=\"800\" height=\"600\" cellspacing=\"0\" cellpadding=\"0\" background=\"cid:bgr.jpg\">
<tr>
<td>testtext</td>
</tr>
</table>
</body>
</html>
\n\n";
//ANHÄNGE
$mail .= "--" . $boundary2 . "\n";
$mail .= "Content-Type: image/jpg; name="bgr.jpg"\n";
$mail .= "Content-Transfer-Encoding: base64\n";
$mail .= "Content-ID: <bgr.jpg>\n";
$mail .= "Content-Disposition: inline\n";
$mail .= $datei_inhalt;
$mail .= "--" . $boundary2 . "\n";
$mail .= "--" . $boundary1 . "\n";
mail($recEmail, "EMail", "", $mail);
}
[/code]
Dies habe ich mittels Archiv zusammen gebastelt. Komme aber nun nicht weiter. Die empfangene E-Mail ist leer, obwohl der Quelltext der zu erwartende (soweit ich dass beurteilen kann) ist. Kann mir evtl. jemand helfen?
Moin!
Dies habe ich mittels Archiv zusammen gebastelt. Komme aber nun nicht weiter. Die empfangene E-Mail ist leer, obwohl der Quelltext der zu erwartende (soweit ich dass beurteilen kann) ist. Kann mir evtl. jemand helfen?
Nutze doch einfach eine der diversen vorgefertigten und funktionierenden Bibliotheken für sowas. Basteln ist bei Mails immer ganz schlecht - ein dummer Fehler, und schon können die Clients die Mail nicht mehr interpretieren.
- Sven Rautenberg
Hallo Sven,
Nutze doch einfach eine der diversen vorgefertigten und funktionierenden Bibliotheken für sowas.
Das ist aber gar nicht mehr der alte SELF-Gedanke und eigentlich gehörst Du deshalb gebannt...
Hallo RuD,
in emails sind mMn als Zeilenumbruch CRLF vorgeschrieben. Manche Mail-Clients nehmen das verdammt übel, wenn man sich nicht daran hält.
Base64-Codierte Blöcke dürfen dagegen nur mit LF umgebrochen werden, damit sie nicht auseinanderfallen. Aus den ganzen RFCs geht das auch irgendwo hervor.
Wenn Du hier in der Forumssuche "MIME MAIL" eingibst, dann findest Du ungeheuer viele Threads, die die Probleme diskutieren.
Und ein Verständnis für die Dinge zu entwickeln, erachte ich immer noch als viel besser, als "irgend etwas Fertiges" zu benutzen.
Im Sinne von SELF
LG
Der Chris
Moin!
Nutze doch einfach eine der diversen vorgefertigten und funktionierenden Bibliotheken für sowas.
Das ist aber gar nicht mehr der alte SELF-Gedanke und eigentlich gehörst Du deshalb gebannt...
Wieso? Wohin gebannt?
Und was ist böse daran, standardisierte Aufgaben von existierendem, gut ausgearbeitetem Programmcode erledigen zu lassen, anstelle sich alles mühsam selbst zusammenzufummeln?
Oder schreibst du, wenn du Daten speichern möchtest, auch immer wieder eine eigene Datenbank selber?
- Sven Rautenberg