mb_send_mailの第5引数のことで

mail関数でもmb_send_mail関数でも同じだが、第5引数があれば、それはMTAにコマンドラインパラメータとして渡される。これにより受信するメールヘッダにReturn-Pathがセットされ正しくエラーメールが届くようになったり、スパムと判断されにくくなったりする。書式はメールアドレスの前に「-f」とつけるだけ。

ただ、第5引数を与えても、Return-Pathが環境によって付加されないことがわかった。おそらくメール転送に起因するようだ。

現在メインのメールアカウントとしてgmailを使用している。会社ドメインやその他独自ドメインは種々のレンタルサーバで運用しており、メールアドレスはレンタルサーバ内でアカウントを作成しておいて、すべてgmailに転送するよう設定している。

例えばサーバAにメールアカウントを設定してgmailに転送し、以下のスクリプトを流すと、受信したメールには適切にReturn-Pathに値が設定されている。

mb_send_mail(‘Aサーバ上のメールアドレス’,’タイトル’,’本文’,’From: 適当なメールアドレス’,’-f適当なメールアドレス’);

ここで「Aサーバ上のメールアドレス」を「Bサーバ上のメールアドレス」に変更する。A同様Bでもgmailに転送するよう設定している。こちらの場合はReturn-Pathに値が未設定の状態でメールが届いた。以下のような感じ。

Return-Path: <>

mb_send_mail(‘kitao@komamono.com’,’試験’,’テスト’,’From: info@fishup.net’,’-finfo@fishup.net’);

どうやら、レンタルサーバの各種設定(おそらくはMTAの設定)によって、挙動が変わるようだ。これは多分転送設定した場合に現れるようで、転送なしの場合はどのサーバでも問題なく動作するようだ(上記のサーバでも直接gmailのメールアドレスを指定した場合は両方とも問題なかった)。レンタルサーバも、特にココ、というわけではなく複数のレンタルサーバで同様の問題が出ることを確認した。

でも、これ。レンタルサーバのMTAの問題だからどうにもならなさそう。

1件のコメント

  1. webd :

    phpのフォーム構築mb_send_mailのことで調べ中に参考にさせていただきました。まだまだphp初心者なので、また他の記事も参考にさせていただきます。

コメントを残す


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net