2016-04-07 13 views
0

PHPMailerで送信するプレーンテキストの電子メールメッセージの最後に新しい行を取り除こうとしています。PHPMailerプレーンテキストの電子メールで最後に新しい行が追加される

私は何を正確にやっていることである:多分

msg screenshot

$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(); 

すべてがメッセージ本文の後に追加された新しい行を除いて結構です、それはのようなものです誰かが、改行マーカーをメッセージの終わりから削除する方法を知っていますか?

ありがとうございます!

編集: $ xxx3変数はメール送信関数に渡されるパラメータです。 「いいえ」または「はい」のいずれかに設定されます。

+1

あなたの '$ xxx3'変数はどこから来ますか? –

+0

メール送信機能に渡されるパラメータです。これは、簡単なif/elseステートメント(形式免責条項のチェックボックスの表現です)で "no"または "yes"に設定されています – eGz3

+1

'trim($ xxx1。" \ r \ n "。$ xxx2。" \ r \ n "。$ xxx3、" \ r \ n ")'ボディ 'として –

答えて

1

PHPMailerはメッセージのMIME構造を組み立てている間に改行を追加します。 createBodyメソッドを参照してください。私は、メッセージボディは改行で終わらなければならないというRFC要求があると思います(今はどれが正確に覚えていないのでしょうか)。それが重要なのであれば、最初に末尾の改行を取り除くことをお勧めします:

$mail->Body = rtrim($xxx1."\r\n".$xxx2."\r\n".$xxx3, "\r\n"); 
+0

こんにちは、おかげで、私はあなたが結果は同じだと言ってやろうとしました。 phpMailerファイルの編集を検討するべきだと思いますか? – eGz3

+0

PHPMailerファイルを編集せずに、サブクラスを作成し、createBodyメソッドをコピーして好きなように編集するだけです。 'rtrim'が何もしなかったならば、' Body'には後に改行がなく、PHPMailerは2つを追加している可能性があります。 – Synchro

関連する問題