von weiten reisen, nerdigen skripten und kreativem agenturleben
26 Aug
E-Mails mit PHP zu versenden geht ja ansich ganz einfach und komfortabel. Interessant wird es jedoch, wenn Textmails mit manuellen Zeilenumbrüchen verschickt werden sollen.
Ein Zeilenumbruch wird im Mailtext beispielsweise wie folgt erzeugt:
$mailtext = "Ich bin ein Absatz.\n"; $mailtext.= "Und ich auch!";
Damit die Steuerzeichen \n, \r oder \t interpretiert werden müssen sie in doppelten Anführungszeichen stehen! Einfache Anführungszeichen im obigen Beispiel würden bewirken, dass das abschließende \n im E-Mail-Text ausgegeben wird.
Soll nun Text aus einer MySQL-Datenbank in die E-Mail fließen, und wurde dieser Text zuvor über ein HTML-<textarea>–Feld in der Datenbank gespeichert, werden plötzlich alle Datenbankinhalte mit doppelten Zeilenumbrüchen in der E-Mail dargestellt.
Grund dafür ist die Form des Zeilenumbruchs der beim Speichern in die Datenbank geschrieben wird. Und das ist bei der Übergabe des HTML-<textarea>–Feldes ein sogenannter „Windows-Zeilenumbruch“ im Format \r\n. Normalerweise interpretieren die meisten Programme diese Umbruchs-Kombination (Carriage-Return + NewLine) als einen zusammenhängenden Umbruch, die gängigen E-Mail-Clients hingegen interpretieren \r\n als doppelten Zeilenumbruch. Auch unter Windows.
Um diese Missinterpretation zu umgehen sollte vor Versand der E-Mail der komplette E-Mail-Text nach dieser Zeichenkombination durchsucht werden. Am einfachsten geht dies mit einem Regulären Ausdruck der alle Vorkomnisse von \r\n durch \n ersetzt.
$mailtext = "Ich bin ein Absatz.\n"; $mailtext.= "Und ich auch! Nach mir kommt Datenbankinhalt."; $mailtext.= $datenbankinhalt; $mailtext = preg_replace("%\r\n%", "\n", $mailtext);
Hej hej, jag heter Tobias och är tjugofyra år gammal. Das, liebe Freunde der Sprachenkultur, war Schwedisch. Und nochmals auf deutsch: mein Name ist Tobias und ich bin 24 Jahre alt. An der Hochschule der Medien in Stuttgart habe ich acht Semester "Druck- und Medientechnologie" studiert. Anfang 2007 habe ich mich mit [mediaversal] selbstständig gemacht, meinem StartUp das mir die Zeit des Studiums etwas versüßte. Seit April 2011 arbeite ich jedoch festangestellt bei der pagina GmbH und entwickle und gestalte E-Books. Und was sonst noch so los ist erfahrt ihr hier im Blog!
Kommentar hinterlassen