Archiv verlassen und diese Seite im Standarddesign anzeigen : HTML eMails versenden mit Pear Mime
bweichel 01-08-2007, 20:50 Ich versuche gerade verzweifelt eine html eMail mit dem Mail/mime Paket von Pear zu versenden. Leider kommt, sobald ich eine Tabelle in das eMail Layout integriere nur noch Müll an. Es steht nichts mehr am richtigen Ort. Habe die eMail jetzt auf ein Minimum reduziert, aber es funktioniert immer noch nicht.
Hier ein Auszug aus meinem Script:
$mail->setHTMLBody('
<html>
<body>
<table border="0">
<tr>
<td valign="top"></td>
</tr>
</table>
</body>
</html>
');
$mail->addHTMLImage('Newsletter230707-starter.jpg');
$body = $mail->get();
$extra_header = array(
'Content-type' => 'text/html; charset=iso-8859-1',
'To' => $empfaenger
);
$headers = $mail->headers($extra_header);
$res = $mailer->send($empfaenger,$headers,$body);
und angekommen ist:
=09
=09
Kann mir jemand sagen was ich da falsch mache?
onemorenerd 01-08-2007, 21:32 Original geschrieben von bweichel
Kann mir jemand sagen was ich da falsch mache?Du versendest HTML-Mails. :mad:
Ich kenne dieses PEAR-Paket nicht, aber es widerspricht meiner Intuition, dass eine Methode namens setHTMLBody wirklich ein komplettes HTML-Dokument übergeben haben will.
Übrigens ist deins noch nicht mal komplett, es hat keinen <head>!
Ich schlage vor, du wirfst erstmal einen Blick in die Doku des PEAR-Pakets.
bweichel 01-08-2007, 21:39 doch ich habe die doku gelesen und es genauso gemacht wie im beispiel. in der doku steht:
Wenn Sie Ihre Nachricht an setHTMLBody() übergeben, geht das Paket davon aus, dass es sich um eine Mail handelt, die im HTML Format verschickt werden soll. Bitte beachten Sie, dass es sich dann um ein komplettes HTML Dokument inklusive aller relevanten Tags handeln sollte.
Ich habe natürlich zuerst noch head, title und meine css Formatierung in dem HTML Dokument gehabt, aber das ging nicht und da habe ich es genauso abgeschrieben wie im Beispiel von Pear. Na ja, geht aber trotzdem nicht.
bweichel 01-08-2007, 23:16 also ich habe mir die email jetzt mit outlook angesehen, da stimmt alles... man will es garnicht glauben... wenn ich es an web.de sende kommt nur müll dabei raus...
es scheint irgendwie am content-type zu liegen... gibt es da nix allgemein gültiges?
ich verwende übrigends folgendes script:
http://www.galileocomputing.de/openbook/php_pear/08_0_mail-002.htm
Original geschrieben von bweichel
wenn ich es an web.de sende kommt nur müll dabei raus...
Du meinst, wenn du es über deren Webinterface betrachtest?
Na ja, die werden aus einem vollständigen HTML-Dokument ja wohl einiges rausfiltern (müssen), damit sie es im Kontext ihrer Seite anzeigen können.
Und zwar nicht nur überflüssige HTML-Elemente, sondern auch Formatierungen - sonst wäre es dir ja per absoluter Positionierung etc. ein leichtes, ihre Webseite mit dem Inhalt deiner Mail komplett zu überlagern. Das öffnet sogar dem Phishing Tür und Tor ...
Also, HTML-E-Mail und Anzeige in einem Webinterface gehen denkbar schlecht zusammen, bzw. kollidieren massiv mit den Interessen des Webmail-Anbieters.
Da kann man also nur wiederholen:
Original geschrieben von onemorenerd
Du versendest HTML-Mails. :mad:
bweichel 02-08-2007, 09:12 ok, da hast du natürlich recht... ich habe nun nur die tabelle eingesetzt und keine css daten verwendet, sondern pures html mit den font-tags... aber das ist nicht die hauptursache... schaut euch mal das bild im anhang an, das kommt dabei heraus.
ich habe mir den quellcode mal angesehen, da steht bei denen in der ersten zeile schon:
<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" background=3D"
http:=
//www.example.de/newsletter/images/newsletter-layout1-voll_06.gif" width=3D=
"627" align=3D"center">
und bei mir:
<table border="0" cellpadding="0" cellspacing="0" background
="www.example.de/newsletter/images/newsletter-layout1-voll_06.gif" width="627" align="center">
also da läuft doch irgendwas gewaltig schief. ich vermute mal es liegt an der kodierung, weiß aber nicht was ich da sonst noch einstellen soll. momentan steht sie auf:
'text/html; charset=iso-8859–1'
Diese =XY-Zeichenketten sehen doch stark nach einer Quoted-Printable-Kodierung aus (das eingangs erwähnte =09 wäre dann bspw. ein Tabulator).
cellpadding=3D"0" - =3D ist die Kodierung des Gleichheitszeichens selber.
Also irgendwer kodiert da einmal zu oft, oder hat vergessen die Kodierung anzugeben, oder ...
bweichel 02-08-2007, 16:54 na ja, ich muss mir das ganze nochmal in ruhe ansehen... hab die mails jetzt mit phpmailer versendet, dort geht es ohne probleme... muss mir da mal die kodierung ansehen...
allerdings braucht phpmailer für 623 email 1 stunde... warum dauert das so lange? ich bin kurz dabei alles via mail() zu versenden... das geht ruck zuck...
bweichel 04-08-2007, 18:52 so, ich habe jetzt mal noch:
'Content-Transfer-Encoding' => 'quoted-printable', in den header geschrieben. jetzt wird aber allerdings das bild, was ich mit
addHTMLImage eingefügt habe noch immer nicht angezeigt. es scheint als gibt er mir das bild als code aus... muss ich noch was in den header schreiben, damit auch das bild, quasi der anhang angezeigt wird?
onemorenerd 04-08-2007, 19:58 Hast du das Bild denn auch in quoted printable konvertiert?
|
-
- |