eMail richtig versenden.

csskoeln

Well-known member
ID: 10644
L
29 Mai 2006
130
4
Abend,

ich möchte gerne eine Email als reine TEXT Email versenden, das Problem ist aber, das z.b. Outlook und Outlook Express die selbe Email anders darstellt.

Wie kann ich also eine Email mit Headern erzeugen, die auch nahe zu bei fast jedem Emailprogramm korrekt angezeigt wird?

Folgende Code habe ich bereits:
PHP:
$headersout  ='';
$headersout .= "From: ".$out_absender_email." <".$out_absender_email.">\n";
$headersout .= "X-Sender: ".$out_absender_email." <".$out_absender_email.">\n";
$headersout .= "X-Mailer: ".$out_absender_email."  1.0 ".date("Y")."\n";
$headersout .= "X-Priority: 3\n";
$headersout .= "Content-Type: text/plain\n";
$headersout .= "Content-Transfer-Encoding: 8bit\n";
$headersout .= "MIME-Version: 1.0\n";
$headersout .= "Error-To: ".$out_absender_email." <".$out_absender_email.">\n";
$headersout .= "Return-Path: ".$out_absender_email." <".$out_absender_email.">\n";

mail($kundenemail,$betreff,stripslashes($sendnachricht),$headersout);


Könnte es ggf. an stripslashes liegen?

Leider stimmt die Formatierung des Textes nicht ganz, jemand ne Idee?
 
abend,

**********************************************************
Achtung! Bei Antwort/Reply auf diese E-Mail
bitte NICHT das Subject/Betreff veraendern,
da eine weitere Bearbeitung sonst nicht moeglich ist.
Vielen Dank!
**********************************************************

bzw.:

**********************************************************

Achtung! Bei Antwort/Reply auf diese E-Mail

bitte NICHT das Subject/Betreff veraendern,

da eine weitere Bearbeitung sonst nicht moeglich ist.

Vielen Dank!

**********************************************************

so in etwa.
Die Formatierung der Email
ist halt nicht so doll.
 
Sieht die Nachricht in der Textarea so aus wie in deiner ersten Ausgabe oder in der zweiten?
 
Ich habe eine Vermutung, dass es nicht am eMail-Programm, sondern am Browser liegt, der benutzt wurde, um das Formular abzusenden.

Probier mal das hier:
to replace all linebreaks to <br />
the best solution (IMO) is:

PHP:
function nl2br2($string) {
$string = str_replace(array("\r\n", "\r", "\n"), "<br />", $string);
return $string;
}

because each OS have different ASCII chars for linebreak:
windows = \r\n
unix = \n
mac = \r

works perfect for me
Quelle: https://de2.php.net/manual/de/function.nl2br.php#73440
 
Versuch mal nur \n statt \r\n als Zeilentrenner zu verwenden. Manche Mailagents haben die Angewohnheit, \r und \n jeweils einzeln als Zeilenumbruch darzustellen, dadurch werden bei Verwendung von \r\n natürlich alle Umbrüche verdoppelt.
 
Moin,

beides leider nein, ich glaube doch, das es am Emailprogramm liegt und daher naja^^


ich danke trotzdem für die Hilfestellung.

Wenn jemand noch ne Idee hat, dann probiere ich es aus, es soll halt reine Textemail sein und kein HTML...

Andere Frage: Kennt sich jemand gut mit Wordwarp aus?
Einfach nach XX Zeichen abschneiden ist nicht so der Hit...