Sven Rautenberg: multipart/related: HTML-Mail mit eingebettetem Bild verschicken

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

--
My sssignature, my preciousssss!
  1. 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

    1. 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

      --
      My sssignature, my preciousssss!