Zum Inhalt springen

t3lib_htmlmail kommt mit dem HTMLcode nicht zurecht

Erstellt am 30. Oktober 2009 · 1 Antwort · letzte Antwort am 30. Oktober 2009

Tags: E-Mail-Versand, Frage

eztam ·

Hallo,

//2x editiert (siehe unten)

ich habe eine Extension (backend module) geschrieben, in der eine email versendet wird.

...
$m = t3lib_div::makeInstance('t3lib_htmlmail');
$m->start();
$m->subject         = $userLang->getLL('title');
$m->from_email      = $this->conf['fromEmail'];
$m->from_name       = $this->conf['fromName'];
$m->organisation    = '';
$m->priority        = $this->conf['emailPriority'];
$m->fetchHTML($templateFile);
$m->theParts['html']['content'] = $this->parse($m->theParts['html']['content']);
$m->setHeaders();
$m->setRecipient($recipient);
$sent = $m->send($recipient);
...

Wie man sieht, hole ich den content aus einem templatefile.
Danach parse ich den content kurz und ersetze Platzhalter.

Auszug aus dem Inhalt von $m->theParts['html']['content'] direkt vor dem Versenden:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de-DE" lang="de-DE">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
...

Die Email die ich empfange sieht folgendermaßen aus:

<html xmlns="ttp://www.w3.org/1999/xhtml"" xml:lang="e-de"" lang="e-DE"">
<head>
	<meta http-equiv="ontent-Type"" content="exthtml;" charset="f-8"" />
...

Das heißt nach jedem =-Zeichen werden 2 Zeichen irgendwie entfernt. Das muss innerhalb der t3lib_htmlmail->send(); funktion passieren, da ich ja wie gesagt direkt davor noch den korrekten HTML-Code habe.

Weiß jemand, was hier das Problem sein könnte?
Hat das was mit dem encoding zu tun?

(Ich hatte bisher auch den Doctype XHTML-Transitional mit im Template, da ich zuerst dachte, dass es damit zusammenhängt habe ich diesen zur zeit nicht angegeben)

------------edit:------------------------------------------

Also es hat sich jetzt herausgestellt, dass das wohl irgendwie am Outlook 2007 liegen muss und ich da mal schauen muss, was hier falsch ist.

Ein weiteres Problem ist ein Bild, das ich im Quelltext integriert habe, wie ist es möglich das mitzuversenden?

-----------/edit-------------------------------------------

------------edit2:------------------------------------------

OK, es muss doch an der t3lib_htmlmail liegen, denn wenn ich den content der Mail per ->fetchHTML($templateFile); hole, tritt der beschriebene Fehler auf!
Wenn ich stattdessen das Template per fopen() einlese und als HTML setze, wird die Email korrekt dargestellt.

Kann sich das jemand erklären?

-----------/edit2-------------------------------------------

MfG eztam

eztam ·

Problem gelöst!

Hätte statt fetchHTML($file); addHTML($file); verwenden müssen.

Code der Lösung:

...
$m = t3lib_div::makeInstance('t3lib_htmlmail');
$m->start();
$m->subject         = $userLang->getLL('title');
$m->from_email      = $this->conf['fromEmail'];
$m->from_name       = $this->conf['fromName'];
$m->organisation    = '';
$m->priority        = $this->conf['emailPriority'];
$m->addHTML($templateFile);
$m->theParts['html']['content'] = $this->parse($m->theParts['html']['content']);
$m = $m->send($recipient);
...