multipart/related: HTML-Mail mit eingebettetem Bild verschicken
Sven Rautenberg
Moin!
Ich habe ein kleines Problem mit dem Versand eines Newsletters in PHP.
Ausgangspunkt: Ich habe etwas HTML-Code und ein JPG-Bild. Beides soll so verschickt werden, dass beim Empfänger HTML und Bild zusammen angezeigt werden - das Bild soll im HTML mit <img> referenziert werden, aber eben als Attachment mit dranhängen.
Lösungsansätze: Ich habe schon diverse originale und (nach Fehlversuchen dann modifizierte) PHP-Klassen und -Funktionen ausprobiert, die alle immer behaupten, sie würden die gewünschte Arbeit leisten, indem sie eine Mail mit dem MIME-Typ multipart/related erstellen. Innerhalb des HTML-Teils kann ich dann mit <img src="cid:content-id-des-attachments"> angeblich das Bild einbinden.
Klappt aber leider nicht in meinem Eudora-Mailclient, obwohl er es grundsätzlich kann - wie diverse Spam-Mails beweisen. Ich sehe immer nur den HTML-Teil, aber kein Bild - das wird (mit dem IE als Viewer) nur als broken Image angezeigt, mit dem Rudora-Viewer gar nicht.
Ich kann leider auch in Eudora nicht nachgucken, welches Original-SMTP-Format gesendet wurde, weil diese Information von Eudora beim Empfang gewandelt und nicht gespeichert wird. Und ausgerechnet jetzt kommt auch kein Spam rein, den ich auf dem Mailserver abfangen könnte...
Das passende RFC zu multipart/related habe ich auch schon gelesen, die Mail entspricht "eigentlich" genau den dortigen Vorgaben - aber es funktioniert leider nicht.
Wer weiß Rat?
Return-Path: <demo@example.org>
X-Original-To: ich@example.com
Delivered-To: ich@example.com
Received: from mail.example.org ([10.0.0.1])
by mail.example.com (Postfix) with ESMTP id 16F463004E
for <ich@example.com>; Thu, 8 Sep 2005 12:10:20 +0200 (CEST)
Date: Thu, 8 Sep 2005 12:10:19 +0200
Precedence: bulk
To: "Sven Rauteberg" <ich@example.com>
Subject: Betreffzeile
From: demo@example.org
X-Mailer: makeMIME v2.1 in PHP by MTWJ
Mime-Version: 1.0
Content-Type: multipart/related; boundary="MTWJ_rel_Bound_0"; start="<startid>"; type="text/html"
Message-Id: <whatever-ID@mail.example.org>
This is a MIME email - please upgrade to a MIME compatible email client
--MTWJ_rel_Bound_0
Content-Type: text/html; charset="ISO-8859-1"; declaration="<startid>"
Content-Transfer-Encoding: 8bit
Content-ID: <startid>
Content-Description: Main Text Document
<h1>Mailtest HTML</h1><p><img src='cid:pic_1' border='1' alt='Testbild' width='400' height='5
20'></p>
--MTWJ_rel_Bound_0
Content-Type: image/jpeg
Content-ID: <pic_1>
Content-Transfer-Encoding: base64
Content-Description: Attached Image
/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAMgAA/+4ADkFkb2JlAGTAAAAAAf/b
[... weitere base64-Zeilen...]
u4/cr1HPn+o+qv4UKUpVzIUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUp
SgFKUoBSlKAUpSgFKUoD/9k=
--MTWJ_rel_Bound_0--
- Sven Rautenberg
Hi,
Ich kann leider auch in Eudora nicht nachgucken, welches Original-SMTP-Format gesendet wurde, weil diese Information von Eudora beim Empfang gewandelt und nicht gespeichert wird. Und ausgerechnet jetzt kommt auch kein Spam rein, den ich auf dem Mailserver abfangen könnte...
da ich mir eine Phishing-Mail aufgehoben hatte...:
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----------2CBD89DD59560CD"
X-Virus-Scanned: by amavisd-milter at mail15.com
This is a multi-part message in MIME format.
------------2CBD89DD59560CD
Content-Type: multipart/related;
type="multipart/alternative";
boundary="----------093466BCA3E7788"
------------093466BCA3E7788
Content-Type: multipart/alternative;
boundary="----------5A408C959FFF5FB"
------------5A408C959FFF5FB
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
HTML file required for this letter.
------------5A408C959FFF5FB
Content-Type: text/html
Content-Transfer-Encoding: 7bit
<html>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="100%" border="0" cellpadding="10" cellspacing="0">
<tr>
<td bgcolor="#000080"><div align="right"><img src="cid:logo_db.gif" width="199" height="54">
[...]
------------5A408C959FFF5FB--
------------093466BCA3E7788
Content-Type: image/gif; name="logo_db.gif"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="logo_db.gif"
Content-ID: <logo_db.gif>
R0lGODlhxwA2APcAAPz/////+v/8//z//UBAnoGBvbi84v///fz/+7+/2//9/fv///z7////
[...]
freundliche Grüße
Ingo
Moin!
Ich kann leider auch in Eudora nicht nachgucken, welches Original-SMTP-Format gesendet wurde, weil diese Information von Eudora beim Empfang gewandelt und nicht gespeichert wird. Und ausgerechnet jetzt kommt auch kein Spam rein, den ich auf dem Mailserver abfangen könnte...
da ich mir eine Phishing-Mail aufgehoben hatte...:
SO EINE SCHEISSE, MANN! Da sitze ich jetzt fast einen Tag an dieser dummen Kacke...
Wie ich soeben festgestellt habe, ist es offenbar bei EMail-HTML-Interpretern NICHT egal, ob man seinen Image-Link innerhalb von '' oder von "" schreibt.
Mit '' geht es nicht, mit "" geht es doch! Dumm, wenn man zuerst die nicht funktionierende Variante ausprobiert, gell? <grrr>
- Sven Rautenberg