フォームで有った怖い事

 当サービスとは関係ないのですが、仕事柄で色々とメールフォームを見てきて有った困った点をまとめて見ました。
これは実話です。


Outlookでの「次の人の代理で送信しました 」

 この現象は、WebサーバーでのApacheの実行ユーザー名@サーバーのドメイン名と、メールのFROMに設定したメールアドレスが異なっている場合に発生します。

 メールフォーム内で何も行わないと、メールのヘッダー情報の「sender」や「x-sender」に上記のApacheの実行ユーザー名@サーバーのドメイン名が設定されて、メールが送付されます。

 Outlookは、両方を比較して異なる場合に、「次の人の代理で送信しました 」として、両方のアドレスを表示します。

 この現象の回避法は、phpのmailやmb_send_mail関数の呼び出し時に、sendmailコマンドへのオプションとして「-f」とメールFROMのアドレスを渡せば、sendmailコマンドは、「sender」や「x-sender」に指定をしたメールFROMのアドレスを設定してメールを送信します。
※このオプション指定は、Windows版PHPの場合にエラーが発生する恐れがあります。

 ただ、これで問題解決かと言うと、残念ながら、「X-Authentication-Warning」ヘッダー問題が加わる場合があります。

 なんと、このヘッダーが加わると、メールがSPAM扱いされる確率が高くなります。

 なぜ、このヘッダーが加わるかと言うと、メールサーバーのsendmailが「メールの送信者を偽装している確率があるよ」と言う意味で付加いたします。
※因みに、メールサーバーがPostfixの場合は発生しません。

 この場合、Webサーバーの/etc/mail/trusted-usersに、Apacheの実行ユーザー名を登録する事で回避できます。

 上記設定が出来ない場合は、SPAM扱いの確率が高く成よりは、「次の人の代理で送信しました 」付きのメールにした方が良いと思います。

 これらは途中で変わることが少ないので、設置後にテストで申し込みを行い、メールヘッダーの確認を行っておくことが大切です。