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