PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : HTML E-Mail fehlerhaft


Jarell
09.08.2007, 12:37:04
Ich weis irgendwie gerade nicht weiter.

Folgendes Problem.

Ich habe eine Seite, auf der eine paar Daten erfass und am Ende per HTML
E-Mail verschickt werden.

das verschicken geschieht ganz normal via

mail($to, $subject, "", $message);

Das Problem ist nun, dass die E-Mails leider fehlerhaft ankommen.

Das zeigt sich durch falsche Zeileneinrückung oder unerklärlich auftauchende HTML-Tags wie z.B. </tr>

Ich lasse den Inhalt von $message auf der Seite (nach dem versenden der Mail) als Übersicht ausgeben. Bei der Ausgabe dieser Übersicht ist alles problemfrei.

Nur die E-Mails die verschickt werden sind fehlerhaft.

Meine Frage ist also nun wie das passieren kann,… Wie also ein offensichtlich fehlerfreier HTML-Code bei der Übersicht fehlerfrei ist … bei den ankommenden E-Mails aber nicht.

Ich wäre über jeden Hinweis wirklich sehr dankbar.

Raketenmann
09.08.2007, 14:15:32
Wenn deine HTML-Emails in unterschiedlichen Email-Programmen falsch angezeigt werden, hast du einen "offensichtlich nicht fehlerfreien" Code.

Ansonsten wäre es theoretisch auch möglich, dass das verwendete Email-Programm die HTML-Mails falsch interpretiert.

Jarell
09.08.2007, 14:24:47
also wenn ich $message ganz normal auf einer phpSeite ausgebe,... und es da zu keinen Fehlern kommt,… dann könnte der Quelltext trotzdem fehlerhaft sein ?

Indyk
09.08.2007, 14:27:51
klar, browser sind da viel zu kulant, und e-mail clients vll. aus sicherheitsgründen nicht.
schonmal den genauen quelltext ausgegeben?
vll. liegt es ja einmal mehr an der codierung? utf-8? iso? sendest du sie im header mit?

Jarell
09.08.2007, 15:02:25
Ja, mit dem header. Content-Transfer-Encoding: 8bit.

Hmm ich gehe grade den Quelltext durch. Mir ist dabei aufgefallen, das häufig schließende Tags fehlen.

also z.B. so was:

<td class=tabletxt1><b>Max_Mustermann

<tr>

<td class=tabletxt1>Requester E-Mail: </td>

...


Kann es sein, dass genau da der Hacken ist ? also das der browser eine solch unsauberen Quellcode akzeptiert, der e-mail client aber nicht ?

Indyk
09.08.2007, 15:03:44
raten kann jeder, ausprobieren musst du es wohl selbst

Jarell
23.08.2007, 14:36:14
Hallöchen, ich bins noch mal…

Ich habe jetzt ne halbe Ewigkeit nach einer Lösung für das Problem gesucht,… aber leider ohne Erfolg.

An willkürlichen Positionen in der E-Mail tauchen auf einmal Ausrufezeichen gefolgt von einem Leerzeichen /(bzw. Zeilenumbruch) auf.

Das sieht dann z.B. so aus:

! LS/OLD statt LS/OLD
New S! W stack: statt New SW stack:

Ich habe den Quellcode der E-Mail mit http://validator.de überprüft. Außer diesem angesprochenen Problem mit dem Ausrufezeichen werden keine weiteren Probleme aufgelistet.

Vor allem ist der Quellcode ja vor dem versenden komplett ok. Keine Ausrufezeichen nichts,…. nur die E-Mail ist dann so komisch…

Was kann das sein ? Ich komm da echt ned mehr weiter…

Bin über jede Hilfe dankbar. Falls ihr noch weitere Infos braucht, einfach sagen.


edit: noch ein Beispiel:

Schließendes div-Element wurde nicht gefunden, obwohl dies zwingend notwendig ist.
…<td><div class=tabletxt1><b>test
Zeichen "!" in einem Endtag nicht erlaubt
<td><div class=tabletxt1><b>test</b></di!
Endtag `DI` zu einem nicht vorhandenen Starttag gefunden.
<td><div class=tabletxt1><b>test</b></di!
Zeicheninhalt ist hier nicht erlaubt
v></td><
/tr><tr><td><div class…

Die ganzen Probleme hier kommen z.B. auch nur durch das Ausrufezeichen bei </di!

Jarell
07.09.2007, 14:55:56
Falls es Jemanden interessiert:


Ich habe die Ursache für das Problem gefunden.


Die E-Mail, die ich verschickt habe, war ja so aufgebaut, dass ich in einer Variable den Email-Inhalt gespeichert habe(Also der HTML Code)

Das Problem war nun, dass der gesamte Inhalt in einer langen langen Zeile gespeichert war.

Internetbrowser scheinen damit kein Problem zu haben, aber irgendwo beim versenden der mail war das dann wohl doch ein Problem.

Ich schätze mal, dass ein Parser (beim erreichen einer maximalen Zeilenlänge) einen erzwungenen Zeilenumbruch in den Quellcode eingefügt hat. Woher da das ! kommt,.. ka ist nur meine Vermutung.

Die Lösung des Problems war es dann einfach, dass ich in die Nachricht mehrere \r\n eingebaut habe.


Jetzt funktioniert alles wie gewollt.