ということで今日あったQdmailの不具合?についてのメモ。
Qdmailでメール送信した際に、ヘッダーの一部またはすべてが
本文に表示されてしまうという不具合?に遭遇しました。
原因としては、ソースコード上の改行コードが違うために
起こってしまうそうです。
Qdmailではヘッダーの改行コードをRFCに準拠していますので「CrLf」なんだそうです。
ただ、qmailなどでメールを送信している場合に「CrLf」だと不具合が起きてしまうことが
あるそうです。
うちのサーバはPostfixでしたが、ダメだったみたいですね。
ですので、改行コードをソースコード上で「CrLf」から「Lf」に変更したところ、
ヘッダーが本文に表示されることは無くなりました。
Qdmailで使用する改行コードを変更するには
「lineFeed関数」を使用します。
$mail->lineFeed("\n");
終わり
参考URL:ヘッダーが見えてしまう等 - Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte
2012/05/01
【PHP】Qdmailでメール送信した際に本文にヘッダーが表示される【Qdmail】
2012/02/15
【PHP】QdmailでReturn-Pathをセットする【Qdmail】
PHPでメールを送信する上で大変便利なQdmailでReturn-Pathをセットする 方法です。 Qdmailの公式によるとmtaOption関数を使用します。addHeaderで設定しても無視されますので注意してください。 qd_send_mail($option .....)の場合 $option = array( 'type' => 'text', 'option'=>array( 'mtaOption'=>'-f return_address@example.com' ), );と書いてあります。 つまり、インスタンスを生成してQdmailを使用する場合はセットできない ということみたいです。 該当記事 ですが、実はインスタンスを生成した場合でもReturn-Pathを指定することができます。 下記のソースがReturn-PathをaddHeaderメソッドで設定した場合 ※この方法では設定されません。<?php $mail = new Qdmail; $mail->to('to@example.com'); $mail->from('from@example.com'); $mail->subject('sub'); $mail->body('message'); $mail->addHeader('-f return@example.com'); $mail->send();下記のソースがReturn-Pathを別の方法で設定した場合 ※この方法では正しく設定されます。<?php $mail = new Qdmail; $mail->to('to@example.com'); $mail->from('from@example.com'); $mail->subject('sub'); $mail->body('message'); $mail->mtaOption('-f return@example.com'); $mail->send();終わり
登録:
投稿 (Atom)