ラベル Qdmail の投稿を表示しています。 すべての投稿を表示
ラベル Qdmail の投稿を表示しています。 すべての投稿を表示

2012/05/01

【PHP】Qdmailでメール送信した際に本文にヘッダーが表示される【Qdmail】

ということで今日あった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/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();
終わり