▼ Sendmailオプション
Sendmailへのオプションの渡し方
mail関数の第5引数は、MTAに渡すオプションです。お使いのサーバーがsendmailまたはsendmailラッパーであれば、使用することができます。
なお、SafeMode時には、このオプションは使用できず、Qdmailエラーとなります。
-f はreturn-pathを設定するためのオプションです。
※windows版ではPHP自体の制限のため、Fromヘッダ、とReturn-Pathヘッダは強制的に一致となります。
mail関数の第5引数は、MTAに渡すオプションです。お使いのサーバーがsendmailまたはsendmailラッパーであれば、使用することができます。
なお、SafeMode時には、このオプションは使用できず、Qdmailエラーとなります。
使い方
$mail -> mtaOption( 'オプション' );
オプション一覧
こちらが参考になります。Manpage of SENDMAILサンプルコード
(サーバーに配達記録をもらう設定)qd_send_mail($option .....)の場合 $option = array( 'type' => 'text', 'option'=>array( 'mtaOption'=>'-N success,failure -f return_address@example.com' ), );return_address@example.comには、貴方が返事をもらうためのアドレスを指定してください。
-f はreturn-pathを設定するためのオプションです。
※windows版ではPHP自体の制限のため、Fromヘッダ、とReturn-Pathヘッダは強制的に一致となります。
OOPまたはeasy...メソッドの場合
$mail -> mtaOption( '-N success,failure -f retun_address@example.com' );
▼ コメント(0件)
- TB-URL http://hal456.net/qdmail/090/tb/
▼ Dateヘッダーを指定する
Qdmailでは下記の指定をしておくと、Dateヘッダーを自動でつけてくれます。
(1.1.2以降)
$mail -> addHeader() が優先するということです。
(1.1.2以降)
OOP、easy方式
$mail -> timeZone( '+9000' ); // 日本時間の場合
qd_send_mail方式
$option = array( 'type' => 'text', 'option' => array( 'timeZone' => '+9000' ) );ただし、Dateヘッダーが設定されている場合には、timeZone() は無視されます。
$mail -> addHeader() が優先するということです。
自分でDateヘッダーをつける場合
$mail -> addHeader('Date','Mon, 3 May 2008 22:30:00 +9000(JST)');
# 2009年07月11日(土) 深夜4時26分
サンプルにある +9000 は +0900 の間違いではないですか?
勘違いならごめんなさい
# 2010年01月29日(金) 午後7時09分
1.2.6bでこの機能を使用させていただいているのですが、午後のメールが12時間前の時刻で送信されているようにみえます。
2061行目の
> $this->other_header['Date'] = date('D, d M Y h:i:s ') . $this->time_zone;
の時刻の小文字hですが、大文字Hの誤りではないでしょうか?
# 2010年03月28日(日) 午後4時32分
こんにちは、honeplusさん。
確かに12時間ずれて表示されますね、昨日から Qdmail を使い始めたので情報助かりました。
NG : $this->other_header['Date'] = date('D, d M Y h:i:s ') . $this->time_zone;
OK : $this->other_header['Date'] = date('D, d M Y H:i:s ') . $this->time_zone;
# 2019年05月04日(土) 深夜1時11分
date('D, d M Y h:i:s ') ⇒ date('D, j M Y h:i:s ')
ではないですか?
- TB-URL http://hal456.net/qdmail/086/tb/
▼ 2008/09/11(木) 2008-09-11
Qdmaiのダウンロードページはこちら
- 2008-09-11
- 1.1.2b
resetHeader()メソッドのバグ修正。add_headerのリセット漏れを解消。
timeZone()メソッドの追加
messageId()メソッドの追加
- TB-URL http://hal456.net/qdmail/087/tb/
▼ message_id
Qdmailでは、1.1.1b以降から、message_idを自動的につけてくれます。
それまでは、message_idをつけずに、mail関数やSMTPサーバーに渡していました。それでも、サーバーが自動で付けてくれるので、古いバージョンでも心配はありません。
Qdmailでは、送信ごとにmessage-id を生成し、どのmessage-idも一意になるようにしています。
一方で、多くのメーラーでは、Fromヘッダーの差出人のメールアドレスを付けることも多いようです。
もし、message-id の@の右側部分だけを任意のものにしたい場合は以下のメソッドをお使い下さい。
(1.1.3b以降に有効です。)
意味のある言葉でなく、ランダムな文字列でも大丈夫です。例えばsalkdfhaoifsakdaw9r5dfsとか。
( $salt で検索するのがよいでしょう。)
Qdmailは、Message-Idの作成に、SHA1()関数を使っており、この$saltを変えていただくと、より一意な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 Qdmaiのダウンロードページはこちら 2008-09-11 1.1.2b resetHeader()メソッドのバグ修正。add_headerのリセット漏れを解消。timeZone()メソッドの追加messageId()メソッドの追加