Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Probleme mit Steuerzeichen in php mail()

Hallo Leute,

ich verschicke mit der php mail funktion ne email. der inhalt wird vorher in ner variable $inhalt festgelegt und mit den Steuerzeichen /n für newline und /t für Tab formatiert.

wenn ich die mail unter Linux anzeige, stimmt die formatierung auch.
aber wenn ich zb Outlook benutze dann wird /n und /t ignoriert.
für windows gibts ja anstelle /n --> /r.
aber was mach ich mit dem Tab? und warum ignorieren manche mail proggies die /n und /t ?

vielen Dank schonmal... Seb

Hier gehts zum Orginal Eintrag "Probleme mit Steuerzeichen in php mail()" im Forum

Antworten

du musst in outlook, irgendwo ein hacken mach, dass er wie html mails formatieren soll, oder sowas. aber am besten du benutzt nicht die mail funktion, sondern phpmailer.

edit: hab gerade mal geguckt. bei outlook express heißt die option "Alle Nachrichten als Nur-Text lesen". Diese Option musst du deaktivieren. Bei Outlook selber, wird es ähnlich sein.

johnpatcher


2.

Auszug aus der RFC2822:
Zitat:
Messages are divided into lines of characters. A line is a series of
characters that is delimited with the two characters carriage-return
and line-feed; that is, the carriage return (CR) character (ASCII
value 13) followed immediately by the line feed (LF) character (ASCII
value 10).
Das bedeutet: Der einzig richtige und zulässige Weg ist, seine Zeilen in einer Mail mit \r\n abzuschließen. Alles andere ist nicht standardkonform und wird von einigen Mailprogrammen nur zufällig richtig ausgegeben.


3.

Ho oimel,

da hast du Recht! so hab ich das auch gemacht. aber es gibt noch nen Problem mit den TABS \t.
diese werden nicht interpretiert. zumindest nicht von jedem mail proggy.
ein bekannter sagte mir ich soll den text mit sprintf formatieren, aber es muss doch noch ein steuerzeichen für TAB geben, das alle clients lesen können??


mfg seb


4.

Vergesse die Tabs, das funktioniert einfach nicht. Versende besser eine Mutlipart-Mail, also HTML- plus Textmail. Die meisten Mail-Clients interpretieren HTML-Mails richtig und somit ist das Problem in den meisten Fällen behoben.

*** Nobody ***


5.

Hallo Nobody.

ich weiß, das es der einfachste Weg ist einfach ne HTML Mail zu verschicken, aber selbst da gibt es ein Problem, auf Grund dessen ich erst auf die Idee mit der plain/text mail gekommen bin.

ich versende die Mail mit
<? mail($Adresse, $Betreff, $inhalt, $headers); ?>

die Variable $inhalt lasse ich wachsen, indem ich den Inhalt mit
<? $inhalt .= "text.....$variable etc"; ?>
fülle.
die $variablen bekomme ich per POST.
Nun tritt aber folgendes Phänomen auf:

In der Email wird relativ sporadisch ein "Ausrufezeichen", also ein " ! " mitten in den Text reingedruck.
das echo der $variablen aus dem Email text beinhaltet dieses " ! " nicht.
d.h. der Inhalt der "geposteten" variable ist ok.

die Position des Ausrufezeichens in der Email kann ich verschieben, indem ich mehr oder weniger Zeichen in die $inhalt variable schreibe.
Kann sich das jemand erklären?
Ich find das total seltsam...

die $headers sind folgende:
MIME-Version: 1.0\r\n
Content-type: text/html; charset=iso-8859-1\r\n
From: Name <email@host.de>\r\n";
Reply-To: emai@host \r\n";

also ich hab null schimmer, warum das blöde " ! " ab und zu einfach mitten in der Mail auftaucht. Ist das vielleicht nen Zeichen für nen Fehler?


6.

MIME-Mails korrekt zusammenzustellen ist ein komplexer Prozess, der in RFCs auf mehreren 100 Seiten beschrieben wird. Verwende für solche Sachen fertige Lösungen wie den phpMailer.


Hier gehts zum Orginal Eintrag "Probleme mit Steuerzeichen in php mail()" im Forum
 
phpforum.de | Impressum