2016-04-07 14 views
0

Ich versuche, neue Zeile am Ende der Nur-Text-E-Mail-Nachricht, die ich mit PHPMailer senden loswerden.PHPMailer Nur-Text-E-Mail fügt neue Zeile am Ende

Was ich tue genau das ist:

$mail = new PHPMailer(); 
$mail->CharSet = "UTF-8"; 
$mail->isHTML(false); 
$mail->Body = $xxx1."\r\n".$xxx2."\r\n".$xxx3; 
$mail->setFrom("[email protected]", "xxx"); 
$mail->addReplyTo("[email protected]", "xxx"); 
$mail->addAddress($to, $name); 
$mail->Subject = $topic; 
$mail->send(); 

Alles ist in Ordnung, außer für die neue Linie, die nach dem Nachrichtentext hinzugefügt wird, dann ist es so etwas wie:

msg screenshot

Vielleicht hat jemand eine Idee, wie man den Newline-Marker vom Ende der Nachricht entfernt?

Danke!

BEARBEITEN: $ xxx3 Variable ist ein Parameter, der an die Mail-Sendefunktion übergeben wird. Es wird entweder auf "Nein" oder "Ja" gesetzt.

+1

Woher kommt Ihre Variable '$ xxx3'? –

+0

Es ist ein Parameter, der an die Mail-Sendefunktion übergeben wird. Es wird entweder auf "nein" oder "ja" in der einfachen if/else-Anweisung gesetzt (es handelt sich um eine Formular-Disclaimer-Checkbox-Darstellung) – eGz3

+1

Sie können verwenden: 'trim ($ xxx1." \ R \ n ". $ Xxx2." \ R \ n ". $ xxx3," \ r \ n ")' '' Body'' –

Antwort

1

PHPMailer fügt Zeilenumbrüche hinzu, während es die MIME-Struktur für eine Nachricht zusammenbaut. Siehe die createBody Methode. Ich denke, es gibt eine RFC-Anforderung, dass Nachrichtentexte mit einem Zeilenumbruch enden müssen (ich kann mich nicht genau erinnern, welcher gerade jetzt), also wird man immer hinzugefügt, um sicherzustellen, dass. Wenn es so wichtig ist, empfehle ich Ihnen, zuerst den Zeilenumbruch zu entfernen:

+0

Hallo, danke, ich habe versucht zu tun, was du gesagt hast, aber das Ergebnis ist dasselbe. Denkst du, ich sollte darüber nachdenken, phpMailer-Dateien zu bearbeiten? – eGz3

+0

Sie können es tun, ohne PHPMailer-Dateien zu bearbeiten - erstellen Sie einfach eine Unterklasse, kopieren Sie die Methode createBody in sie und bearbeiten Sie, wie Sie möchten. Wenn der 'rtrim' nichts getan hat, hat er vorgeschlagen, dass' Body' zu Beginn keine abschließende Pause hatte und PHPMailer könnte zwei hinzufügen. – Synchro

Verwandte Themen