2016-03-19 6 views
0

Ich benutze PHPMailer für das Kontaktformular auf meiner Website. Es funktioniert gut, aber das einzige Problem ist, dass alles in der gleichen Zeile im Nachrichtentext (die Nachricht, die URL, von der die Nachricht gesendet wird, und der Benutzer-Agent) trotz der "\ n", die gesetzt werden sollte alles auf einer anderen Linie. Was ist das Problem? Danke,Formatieren Problem mit dem Körper der E-Mail mit PHPMailer

$mail->Body = $_POST['message']."\nFrom page: ". str_replace("http://", "", $_SERVER['HTTP_REFERER']) . "\n" . $_SERVER ['HTTP_USER_AGENT']; 
+0

Ich denke, die Anzeige hängt von Ihrem E-Mail-Client ab. Verwenden Sie "\ r \ n" anstelle von "\ n" und sehen Sie, ob sich das ändert? – avip

+0

Danke, mit
löste das Problem! – Greg

+0

Sie könnten einfach '$ mail-> isHTML (false)' setzen und es als einfachen Text senden, in dem Leerzeichen und Zeilenumbrüche signifikant sind. – Synchro

Antwort

0

Windows verwendet \r\n Carriage Return, Line Feed (ab Schreibmaschine Tagen) und ‚nichts Betriebssysteme verwenden Zeilenvorschub \n so ist es wahrscheinlich, dass Sie in einer Windows-Umgebung zu testen wurden. In jedem Fall ist die Standardausgabe in HTML, so dass Sie stattdessen stattdessen <br> verwenden möchten. Nicht sicher über PHPMailer altBody obwohl, vielleicht können Sie herausfinden.

1

Sie scheinen HTML E-Mail aktiviert haben, zum Beispiel wie folgt aus:

$mail->IsHTML(true); 

Die Lösung ist dann "\ n" mit "<br>" zu ersetzen, etwa so:

$mail->Body = $_POST['message'].<br>From page: ". str_replace("http://", "", $_SERVER['HTTP_REFERER']) . "<br>" . $_SERVER ['HTTP_USER_AGENT']; 
Verwandte Themen