Ralf: Probleme mit HTLM Mail

Hallo,

ich verschicke eine HTML Mail mit folgendem PHP Script:

  
<?php  
	error_reporting(E_ALL);  
  
	echo "  
	<html>  
	<head>  
	<title>Send Test Email</title>  
	</head>  
	<body>  
	";  
	$email = "test@ich.de";  
	sendEmail($email);  
  
	echo "  
	</body>  
	</html>  
	";  
  
  
function sendEmail($to)  
{  
/* subject */  
$subject = "Am 8. Mai ist Muttertag!";  
  
/* message */  
$message = '  
<html>  
<head>  
  
<style>  
  
#bg1  
{  
 background-image:url(\'http://www.example.org/test.png\');  
 height: 71px;"  
}  
</style  
</head>  
<body>  
<table width="588" cellspacing="0" cellpadding="0">  
<tr>  
<td id="bg1">foo</td>  
</tr>  
</table>  
</body>  
</html>';  
  
/* To send HTML mail, you can set the Content-type header. */  
$headers  = "MIME-Version: 1.0\n";  
$headers .= "Content-type: text/html; charset=iso-8859-1\n";  
  
/* additional headers */  
$headers .= "From: Ein Absender <info@example.org>\n";  
  
/* and now mail it */  
mail($to, $subject, $message, $headers);  
}  
  
?>  

(Ich habe den Code jetzt auf das wesentliche reduziert und hoffe dabei nichts verstümmelt zu haben)

Auf meinem PC wird alles richtig empfangen und dargestellt, auf dem Rechner eines Freundes allerdings wird das per Style Anweisung eingebundene Bild nicht im Tabellen-Zelle.-Hintergrund angezeigt (background-image:url('http://www.example.org/test.png');).

Mache ich hier grundsätzlich etwas falsch (wenn ja: Was?)oder hat er nur eine "sonderbare " Eistellung seines EMail Clients?

  1. Hi,

    ich verschicke eine HTML Mail mit folgendem PHP Script:

    mit allen Unwägbarkeiten und Risiken.

    Auf meinem PC wird alles richtig empfangen und dargestellt, auf dem Rechner eines Freundes allerdings wird das per Style Anweisung eingebundene Bild nicht im Tabellen-Zelle.-Hintergrund angezeigt (background-image:url('http://www.example.org/test.png');).

    Das wäre bei mir auch so.

    Mache ich hier grundsätzlich etwas falsch (wenn ja: Was?)oder hat er nur eine "sonderbare " Eistellung seines EMail Clients?

    Diese Einstellung ist nicht "sonderbar", sondern AFAIK Default bei einigen Mailclients, die beim Anzeigen der Nachricht keine Inhalte aus dem Netz nachladen. Denn das kann vom Versender missbraucht werden, um festzustellen, ob und wann der Empfänger die Nachricht wirklich liest (oder zumindest anzeigt).

    Pack die Bilder daher mit in die Mailnachricht (multipart/related) und referenziere sie per Content ID (cid).
    Oder noch besser: Verschicke ordentliche saubere Plaintext-Nachrichten.

    Ciao,
     Martin

    --
    Das einzige Problem beim Nichtstun: Man weiß nie, wann man damit fertig ist.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Danke,

      Diese Einstellung ist nicht "sonderbar", sondern AFAIK Default bei einigen Mailclients, die beim Anzeigen der Nachricht keine Inhalte aus dem Netz nachladen. Denn das kann vom Versender missbraucht werden, um festzustellen, ob und wann der Empfänger die Nachricht wirklich liest (oder zumindest anzeigt).

      Er klickt dann auf "Exterme Bilder anzeigen" oder so ähnlich. Dann werden die über normale <img src="...."> Tags eingebundenen Bilder angezeigt, die per Style als Tabellenhintergrund eingebundenene jedoch nicht. Genau das ist das Problem.

      Pack die Bilder daher mit in die Mailnachricht (multipart/related) und referenziere sie per Content ID (cid).
      Oder noch besser: Verschicke ordentliche saubere Plaintext-Nachrichten.

      Du kannst mir glauben, dass MIR das viel lieben wäre, aber in diesem Fall soll es unbedingt eine bunte HTML Mail sein.

      MfG Ralf

      1. 'ǝɯɐu$ ıɥ

        Oder noch besser: Verschicke ordentliche saubere Plaintext-Nachrichten.
        Du kannst mir glauben, dass MIR das viel lieben wäre, aber in diesem Fall soll es unbedingt eine bunte HTML Mail sein.

        Wie wärs mit der alternative den Newsletter(?) als PDF im Anhang mitzusenden...oder nur einen Link zu senden und das ganze auf einer Webseite anzuzeigen...

        ssnɹƃ
        ʍopɐɥs

        --
        HTML, was ist das? Ein neues Männermagazin? Css.., was es alles gibt!
        1. Oder noch besser: Verschicke ordentliche saubere Plaintext-Nachrichten.
          Du kannst mir glauben, dass MIR das viel lieben wäre, aber in diesem Fall soll es unbedingt eine bunte HTML Mail sein.

          Wie wärs mit der alternative den Newsletter(?) als PDF im Anhang mitzusenden...oder nur einen Link zu senden und das ganze auf einer Webseite anzuzeigen...

          Ne, leider nicht. Es muss eine HTML Mail sein.

          An was könnt das liegen, dass die per <img...> eingebundenen Bilder angezeigt werden, die als Hintergrund in die Tabelle eingebundenen aber nicht?

          MfG Ralf

          1. Om nah hoo pez nyeetz, Ralf!

            An was könnt das liegen, dass die per <img...> eingebundenen Bilder angezeigt werden, die als Hintergrund in die Tabelle eingebundenen aber nicht?

            #bg1 { background-image:url('http://www.example.org/test.png'); height: 71px;" }

            Vielleicht ist es ein simpler Schreibfehler, die überflüssigen Anführungszeichen, auf den die Parser der Mailclienten unterschiedlich reagieren?

            Matthias

            --
            1/z ist kein Blatt Papier. http://www.billiger-im-urlaub.de/kreis_sw.gif
            1. Om nah hoo pez nyeetz, Ralf!

              An was könnt das liegen, dass die per <img...> eingebundenen Bilder angezeigt werden, die als Hintergrund in die Tabelle eingebundenen aber nicht?

              #bg1
              {
              background-image:url('http://www.example.org/test.png');
              height: 71px;"
              }

              die überflüssigen Anführungszeichen, auf den die Parser der Mailclienten unterschiedlich reagieren?

              Die waren ursprünglich gar nicht da, weil -wie Du sagts- überflüssig.
              Mit oder ohne: Gleiche Verhalten auf seinem wie auf meinem System.

              MfG
              Ralf

          2. Moin!

            An was könnt das liegen, dass die per <img...> eingebundenen Bilder angezeigt werden, die als Hintergrund in die Tabelle eingebundenen aber nicht?

            Mailclients interpretieren CSS mehrheitlich NICHT.

            Wenn du also vernüftig formatierte Mails in HTML versenden willst, musst du wieder zum Hardcore-Tabellenlayout greifen - und natürlich sämtliche Bilder mit in die Mail packen.

            Trotzdem wirst du mehrheitlich Probleme bei Szenarien wie zum Beispiel Webmail-Oberflächen haben, denn dein HTML wird intensiv gefiltert, so dass keine bösen Inhalte in der Webmail-Ansicht eingebunden werden.

            Deine Aufgabenstellung ist also im Grunde nicht für alle Szenarien zufriedenstellend lösbar. Tu dir als unbedingt den Gefallen und füge einen textlich gleichartigen Plain-Text-Bereich hinzu, den du nach deinen Wünschen beeinflussen kannst. Oder lass Plain-Text komplett weg und vertraue auf die Fähigkeiten der Mailclients, aus dem HTML auf Userwunsch nur eine Plaintext-Ansicht zu erzeugen.

            Ganz blöd sind Plaintext-Abschnitte, die nur "Diese Mail ist in HTML geschrieben, ätschbätsch!" enthält. Damit verhinderst du effektiv, dass Plaintext-Liebhaber die Mail überhaupt lesen können.

            - Sven Rautenberg