Mario: PHPMailer - Embedded Image wird bei GMX nicht angezeigt

Hallo zusammen,

ich habe ein Problem, das mich zur Verzweiflung bring. Google, die Foren und die Dokumentation finden nichts, ausser, daß es bei anderen offenbar problemlos funktioniert.

Ich möchte mit PHPmailer eine HTML Mail mit einem embedded Image losschicken. Funktioniert auch, wenn ich die Mail aber mit GMX anschaue, wird das Bild nicht angezeigt. Rufe ich die Mail dann mit Thunderbird von GMX ab, zeigts mir alles problemlos an, auch in anderen Webmailern wie web.de, yahoo, hotmail oder googlemail wird das Bild angezeigt, nur eben bei GMX nicht. (Ich kann auch nirgends klicken, daß Bilder nachgeladen werden sollen oder sowas in der Art, auch in der Volldarstellung wird nichts angezeigt.) Da ich im Internet bei meiner Suche öfters gelesen habe, daß es in GMX funktioniert, vermute ich, der Fehler liegt bei mir. Ich find ihn nur leider nicht und bin für jede Hilfe dankbar!

viele Grüße,
Mario.

  
<?php  
require_once('class.phpmailer.php');  
  
$mailtext = "  
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>  
  
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>  
<head>  
<meta http-equiv='content-type' content='text/html; charset='UTF-8'>  
</head>  
<body>  
<h1>Hallo!</h1>  
Embedded Image: <img alt='PHPMailer' src='cid:my-attach'> Here is an image!  
</body>  
</html>";  
  
  
  
$mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch  
  
$mail->IsSMTP(); // telling the class to use SMTP  
  
try {  
  $mail->IsSMTP();  
  $mail->Host       = "smtp.XXXXXXXX.de"; // SMTP server  
  $mail->SMTPDebug  = 2;                     // enables SMTP debug information (for testing)  
  $mail->SMTPAuth   = true;                  // enable SMTP authentication  
  $mail->Username = "XXXXXXXX";  
  $mail->Password = "XXXXXXXX";  
  
  $mail->AddAddress('XXXXXXXX@gmx.de', 'John Doe');  
  $mail->SetFrom('XXXXXXXX@XXXXXXXX.de', 'XXXXXXXX@XXXXXXXX.de');  
  $mail->AddReplyTo('XXXXXXXX@XXXXXXXX.de', 'XXXXXXXX@XXXXXXXX.de');  
  
  $mail->AddCC("XXXXXXXXl@XXXXXXXX.com","Donald Duck");  
  $mail->Subject = 'PHPMailer Test Subject via mail(), advanced';  
  $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically  
  $mail->AddEmbeddedImage('rocks.jpg', 'my-attach', 'rocks.jpg');  
  $mail->IsHTML(true);  
  $mail->Body = $mailtext;  
  $mail->AltBody  =  "Ohh, keine HTML-Mail";  
  $mail->Send();  
  
  echo "Message Sent OK<p></p>\n";  
} catch (phpmailerException $e) {  
  echo $e->errorMessage(); //Pretty error messages from PHPMailer  
} catch (Exception $e) {  
  echo $e->getMessage(); //Boring error messages from anything else!  
}  
?>  

  1. Om nah hoo pez nyeetz, Mario!

    Rufe ich die Mail dann mit Thunderbird von GMX ab, zeigts mir alles problemlos an, auch in anderen Webmailern wie web.de, yahoo, hotmail oder googlemail wird das Bild angezeigt, nur eben bei GMX nicht. ... vermute ich, der Fehler liegt bei mir.

    Wenn es in vielen Konfigurationen passt und nur bei einer nicht, denke ich, dass gmx irgendwelche Maßnahmen getroffen hat, dieses Bild nicht anzuzeigen. Vielleicht weil es von einem nicht vertrauenswürdigen Absender stammt, oder oder oder

    Kannst du denn den Quelltext der Mail anschauen, der tatsächlich beim Client ankommt?

    Matthias

    --
    1/z ist kein Blatt Papier.

    1. Hallo Matthias,

      ja, den Quelltext kann ich anschauen. Wie man sieht, wird das Bild durch einen GMX Link ersetzt, den man aber nicht anschauen kann bzw. der nicht aufgerufen wird.
      Grundsätzlich stimme ich mit Dir überein, allerdings weiss ich, daß die Mails von einem Bekannten durchkommen und GMX nutzen bei mir leider ca. 1000 Abonnenten, die kann ich also schwierig vernachlässigen.

      liebe Grüße,
      Mario.

        
      An:</th><td>John Doe &lt;XXXXXXXXXXX@gmx.de&gt;</td></tr><tr><th scope="row" style="width: 1%;">Kopie:</th><td>Donald Duck &lt;XXXXXXXXXXX@XXXXXXXXXXX.com&gt;</td></tr><tr><th scope="row" style="width: 1%;">Betreff:</th><td>PHPMailer Test Subject via mail(), advanced</td></tr><tr><th scope="row" style="width: 1%;">Datum:</th><td>02.01.2013 21:28:25</td></tr></table></div><div xmlns="" class="body-text">  
      <h1>Hallo! Neuer Test!</h1>  
      Embedded Image: <img alt="PHPMailer" src="https://service.gmx.net/de/cgi/g.fcgi/mail/print/image?mid=babgeba.1357158515.24547.1uwgaa9obb.72&uid=U3RlcL1zESBNZDIEbWwmOWlyIPADXkZB&cid=my-attach"> Here is an image!  
      </div></body></html>  
        
      
      
      1. Auffällig ist übrigens, daß GMX das image Tag nicht mit einem "/" abschliesst, obwohl das in meinem Skript so steht (Habs mittlerweile geändert). Weiterhin werden die einfachen Anführungszeichen in doppelte Anführungszeichen umgewandelt. Hilft das weiter?

        An:</th><td>John Doe &lt;XXXXXXXXXXX@gmx.de&gt;</td></tr><tr><th scope="row" style="width: 1%;">Kopie:</th><td>Donald Duck &lt;XXXXXXXXXXX@XXXXXXXXXXX.com&gt;</td></tr><tr><th scope="row" style="width: 1%;">Betreff:</th><td>PHPMailer Test Subject via mail(), advanced</td></tr><tr><th scope="row" style="width: 1%;">Datum:</th><td>02.01.2013 21:28:25</td></tr></table></div><div xmlns="" class="body-text">
        <h1>Hallo! Neuer Test!</h1>
        Embedded Image: <img alt="PHPMailer" src="https://service.gmx.net/de/cgi/g.fcgi/mail/print/image?mid=babgeba.1357158515.24547.1uwgaa9obb.72&uid=U3RlcL1zESBNZDIEbWwmOWlyIPADXkZB&cid=my-attach"> Here is an image!
        </div></body></html>

        
        > 
        
        1. Hi,

          Auffällig ist übrigens, daß GMX das image Tag nicht mit einem "/" abschliesst, obwohl das in meinem Skript so steht (Habs mittlerweile geändert). Weiterhin werden die einfachen Anführungszeichen in doppelte Anführungszeichen umgewandelt. Hilft das weiter?

          Dass bei der Anzeige von HTML-Email innerhalb eines anderen HTML-Dokumentes erstere vom Serviceanbieter erst mal gründlich „zerlegt“ und anschließend nur aus genehmen Einzelteilen wieder zusammengesetzt wird, bevor sie irgendwo anders eingebettet wird, ist doch wohl nicht besonders überraschend, oder?

          MfG ChrisB

          --
          RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
      2. Hi,

        Embedded Image: <img alt="PHPMailer" src="https://service.gmx.net/de/cgi/g.fcgi/mail/print/image?mid=babgeba.1357158515.24547.1uwgaa9obb.72&uid=U3RlcL1zESBNZDIEbWwmOWlyIPADXkZB&cid=my-attach"> Here is an image!

        Wie man sieht, wird das Bild durch einen GMX Link ersetzt, den man aber nicht anschauen kann bzw. der nicht aufgerufen wird.

        Sieht fast so aus, als ob das Bild für ein externes, über HTTP abrufbares gehalten wird o.ä.

        Grundsätzlich stimme ich mit Dir überein, allerdings weiss ich, daß die Mails von einem Bekannten durchkommen

        „Durchkommen“ bedeutet, dass darin eingebettete Bilder angezeigt werden?

        Hast du mal versucht, an diesen beiden Stellen

        Embedded Image: <img alt='PHPMailer' src='cid:my-attach'> Here is an image!

        $mail->AddEmbeddedImage('rocks.jpg', 'my-attach', 'rocks.jpg');

        eine cid ohne Sonderzeichen zu verwenden?

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
        1. Hi!

          Sieht fast so aus, als ob das Bild für ein externes, über HTTP abrufbares gehalten wird o.ä.

          Ich hätte jetzt eher vermutet, daß die das Bild bei sich auf dem Server zwischenspeichern oder so.

          „Durchkommen“ bedeutet, dass darin eingebettete Bilder angezeigt werden?

          Ja, durchkommen bedeutet, daß alle Bilder codiert und angezeigt werden und auch im Quelltext bleiben.

          Hast du mal versucht, an diesen beiden Stellen

          Embedded Image: <img alt='PHPMailer' src='cid:my-attach'> Here is an image!

          $mail->AddEmbeddedImage('rocks.jpg', 'my-attach', 'rocks.jpg');

          eine cid ohne Sonderzeichen zu verwenden?

          Geht leider auch nicht. Gleicher erzeugter Code wie oben, nur die cid wird abgeändert.

          lg, Mario.