ようこそゲストさん

Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte

message_id

Qdmailでは、1.1.1b以降から、message_idを自動的につけてくれます。
それまでは、message_idをつけずに、mail関数やSMTPサーバーに渡していました。それでも、サーバーが自動で付けてくれるので、古いバージョンでも心配はありません。


Qdmailでは、送信ごとにmessage-id を生成し、どのmessage-idも一意になるようにしています。

messge-idを自動では付与しない方法

$mail -> messageId( false );
デフォルトでは、 true です。

message-Id を自分で指定する場合

aaddHeader()メソッドを使って、ご自分で指定してください。
$mail -> addHeader( 'Message-ID','message-id-001001001');
message id は、全世界で一意である必要があります(守っていないメーラーも多いそうですが。)。

message-idの右側だけ自分で指定する場合

Message-IDヘッダは、以下の形式にすべきとRFCにて定められています。
一連番号や文字列@IPアドレス
一連番号や文字列@ドメイン名
一連番号や文字列@コンピュータ名
Qdmailでは、この@の右側について、@hal456.netとつけるのがデフォルトとなっています。
一方で、多くのメーラーでは、Fromヘッダーの差出人のメールアドレスを付けることも多いようです。
もし、message-id の@の右側部分だけを任意のものにしたい場合は以下のメソッドをお使い下さい。

(1.1.3b以降に有効です。)
$mail -> messageIdRight( 'example.com' );

推奨事項

Massage-ID ヘッダは、世界で唯一の値であることが求められています。qdmailでは、なるべくその要件を満たすようにしてありますが、より確実にするために、以下の設定を推奨しておきます。
  • ソースコードの中で、
var $salt = 'qdmail';
とある行を探し出し、'qdmail'を探しだし、任意の別の言葉に置き換える。
意味のある言葉でなく、ランダムな文字列でも大丈夫です。例えばsalkdfhaoifsakdaw9r5dfsとか。
( $salt で検索するのがよいでしょう。)

Qdmailは、Message-Idの作成に、SHA1()関数を使っており、この$saltを変えていただくと、より一意なmessage-idを作成する可能性が高くなります(あくまでも可能性)。

#  非公開コメント   
  • TB-URL  http://hal456.net/qdmail/089/tb/
  • 2008-09-11 Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte spok
    Qdmaiのダウンロードページはこちら 2008-09-11 1.1.2b resetHeader()メソッドのバグ修正。add_headerのリセット漏れを解消。timeZone()メソッドの追加messageId()メソッドの追加