Entwickler-Ecke

Programmiersprachen (Server) - Fehler bei HTML-Mail


Danny87 - Sa 08.08.09 17:35
Titel: Fehler bei HTML-Mail
Hey Leute,

jaaa, ich bin auch mal wieder da ;-)

Folgendes Problem:
Ich sende eine HTML-Mail über mail().
Den Header baue ich so zusammen:

Quelltext
1:
2:
3:
$header  =  "MIME-Version: 1.0 \r\n";
$header .=  "Content-type: text/html; charset=iso-8859-1 \r\n";
$header .=  "From: ".$user['vorname']." ".$user['name']." <".$user['email']."> \r\n";


Die Daten für die Mail (ausser das HTML-Grundgerüst) erhalte ich über ein Formular.
Wenn ich nun in das Formlar zum Beispiel folgendes eingebe:
Zitat:
Guten Tag Heinrich Heine,

<img src="http://www.google.de/intl/de_de/images/logo.gif" alt="Google">

<a href="http://www.google.de">Google-Link</a>


erhalte ich in der ankommenden E-Mail bei web.de folgendes:
Zitat:
Guten Tag Heinrich Heine,

\"Google\"

Google-Link


Das Bild wird nicht angezeigt und der Link lautet
Zitat:
https://freemailng2202.web.de/online/msg/\"http://www.google.de\"

anstatt
Zitat:
https://freemailng2202.web.de/jump.htm?goto=http://www.google.de


Wenn ich aber nun das Bild und den Link direkt in der Datei platziere funktioniert es!
Das heißt, es hängt irgendwie mit dem Formular zusammen, aber ich weiß nicht wie und auch nicht wie ich das Problem beheben kann.

Aber das ist noch nicht alles.
Die Mail wird generell nur bei web.de und Konsorten als HTML-Mail angezeigt.
Im Thunderbird sieht die ankommende Mail wie folgt aus:
Zitat:
Content-type: text/html; charset=iso-8859-1

From: Daniel Kirchen <info@multicoder.net>
Message-Id: <20090808152305.9EC7EF550060@vs120046.tuxtools.net>
Date: Sat, 8 Aug 2009 17:23:05 +0200 (CEST)


<html><head><title>E-Mail</title></head><body>Guten Tag Heinrich Heine,
<br>
<br><img src=\"http://www.google.de/intl/de_de/images/logo.gif\" alt=\"Google\">
<br>
<br><a href=\"http://www.google.de\">Google-Link</a>
</body></html>


Außerdem wird im Thunderbird auch kein Absender angezeigt.
Ich nehme also an, dass ich einen Fehler im Zusammenbau der HTML-Mail hab und irgendetwas nicht bedacht habe, was die Daten aus dem Formular angeht (escape?).
Auf jeden Fall bin ich mit meinem Latein so ziemlich am Ende.

Hat von euch jemand ne Idee? :)


Regan - Sa 08.08.09 21:35

Also wenn man nach Beispiel 4 der Manual [http://de.php.net/manual/de/function.mail.php] geht, machst du eigentlich alles richtig :gruebel: .

user profile iconDanny87 hat folgendes geschrieben Zum zitierten Posting springen:
Außerdem wird im Thunderbird auch kein Absender angezeigt.
Ich nehme also an, dass ich einen Fehler im Zusammenbau der HTML-Mail hab und irgendetwas nicht bedacht habe, was die Daten aus dem Formular angeht (escape?).

Bei vielen Webservern werden die Get und Post-Daten vorescaped, verwende einfach ein [url=http://de.php.net/manual/de/function.stripslashes.php]stripslashes[/url], um dieses Problem zu beheben.

Edit: Ich habe deine Eingaben (escaped) gerade mal ausprobiert. Bei mir funktioniert es.


Danny87 - Sa 08.08.09 23:28

Hey,

danke Regan :)
Bei web.de und Konsorten funktionierts so schon mal :)

Beim Thunderbird wird allerdings immer noch nur
Zitat:
Content-type: text/html; charset=iso-8859-1

From: Daniel Kirchen <info@multicoder.net>
Message-Id: <20090808212324.C436AF550300@vs120046.tuxtools.net>
Date: Sat, 8 Aug 2009 23:23:24 +0200 (CEST)


<html><head><title>E-Mail</title></head><body>Guten Tag Heinrich Heine,
<br>
<br>dies ist ein test...
<br>
<br>bild: <img src="http://www.google.de/intl/de_de/images/logo.gif" alt="kein bild">
<br>
<br>link: <a href="http://www.google.de">google</a>

angezeigt :(

Da noch irgendeine Idee? *hoff*


jfheins - Sa 08.08.09 23:36

Geh' mal in Thunderbird auf Ansicht > Nachrichtenquelltext und poste den ...


Danny87 - Sa 08.08.09 23:41


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
From - Sat Aug 08 23:24:00 2009
X-Account-Key: account3
X-UIDL: 1f5192a5d77faad5a3120bc1254c9e13
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
X-Mozilla-Keys:                                                                                 
Return-Path: <www-data@vs120046.tuxtools.net>
X-Original-To: blog@multicoder.net
Delivered-To: info@dannys-software.de
Received: by vs120046.tuxtools.net (Postfix, from userid 33)
  id CB963F550304; Sat,  8 Aug 2009 23:23:24 +0200 (CEST)
To: blog@multicoder.net
Subject: test
MIME-Version: 1.0 

Content-type: text/html; charset=iso-8859-1 

From: Daniel Kirchen <info@multicoder.net>
Message-Id: <20090808212324.CB963F550304@vs120046.tuxtools.net>
Date: Sat,  8 Aug 2009 23:23:24 +0200 (CEST)


<html><head><title>E-Mail</title></head><body>Guten Tag Heinrich Heine,
<br>
<br>dies ist ein test...
<br>
<br>bild: <img src="http://www.google.de/intl/de_de/images/logo.gif" alt="kein bild">
<br>
<br>link: <a href="http://www.google.de">google</a>
</body></html>


jfheins - So 09.08.09 15:27

Hmmm ... eigentlich ne klare Sache: Durch die Leerzeile wird der Header beendet, und der Rest ist halt Content - in Ermangelung eines Content-Type-Headers wird es als text/plain angezeigt ;)

Aber woran das liegt ... k.A. :?


Danny87 - So 09.08.09 16:37

DANKE DANKE DANKE!! *jubel* :party:
Es funktioniert, wenn ich alle unnötigen Leerzeilen entferne :D *freu*
Ich kann gar nicht sagen WIE dankbar ich euch bin :-)

Ich saß bereits über eine Woche an dem Problem... und ihr habts wieder mal in noch nicht einmal einem ganzen Tag geschafft! :-)
Ihr seid echt klasse :)
"Brilliant", wie Dr. McKay sagen würde ;)

Vielen herzlichen Dank euch allen! :)