PHP工房トップ

HOME > フォームから送信されたメールが迷惑メール扱いされる場合の対策

フォームから送信されたメールが迷惑メール扱いされる場合の対策

2018/05/29

迷惑メールに振り分けられてしまう(Gmailなど)

GmailやYahooメールなどのWebメールサービスの場合、お問い合わせフォームから送信されたメールが迷惑メールフォルダに届いてしまうことがあります。

その原因は様々でもあり、またそのロジックなどがわからないため、完璧な対策は困難であるのが現状ですが、 以下を実施することで改善する可能性があります。

また今は問題がなくても将来的に問題が発生するリスクもありますので、できる限り実施されることをお勧めします。

尚、こちらのページで行う対策がすべてではないことを予めご了承ください。おそらく他にもできることは多々あると思います。あくまでも最も基本的なことで、かつ比較的簡単に実施できるもののみ掲載しております。

1,設置先サイトのドメインと同じドメインのメールアドレスを送信先に設定する(必須)

mail.phpで設定できる管理者のメールアドレス($to)のことです。

最も基本的なことでもあります。また性質上当然ではありますが、実在するメールアドレスとしてください。
管理者のメールアドレス($to)として設定したメールアドレスが管理者宛のメールの送信先、並びにお問い合わせユーザー宛の自動返信メールの送信元アドレス(FROM)になります。

そのためこの管理者のメールアドレスとして設定するメールアドレスは最低限サイトのドメインと同じドメインとするべきです。でないと、「なりすまし」と判断される可能性が高まります。
要するに以下のように設定して下さい。

サイトのURL:https://www.abc.jp
管理者のメールアドレス:sample@abc.jp
(同じドメインのメールアドレスとする)

経験上、管理者のメールアドレスをGmailなど他のドメインのアドレスを設定しても問題ないケースも多々あるのですが、お問い合わせという性質上、漏れがあると大変な事態になることもあるため、やはり同一ドメインのアドレスに設定するべきでしょう。

管理者のメールアドレスは1つのみ設定する(重要)

管理者のメールアドレスはカンマ区切りで複数設定可能ですが、経験上、複数設定すると迷惑メール扱いされる可能性があるため、1つに設定したほうが良いです。
※問題がないケース、問題が出るケース(Gmailの場合のみ届かない)の双方を確認しています。
複数の送信先を設定したい場合は、デフォルトの機能として付いているBCCに設定して下さい。
※BCC側は複数設定しても基本的に問題ないです。

2,SPFレコード(DNSレコード)を設定する(強く推奨)

※これを行う場合は上記1,の設定が必須となります。(SPFレコードの性質上、これ単体では意味がないからです)

送信元アドレスの詐称を防止する送信ドメイン認証技術です。
いわゆる「なりすまし」防止のための機能です。
また最近では基本的には必ず行うべきとされている機能です。

サーバーによって対応方法が異なるため、 方法についてはご自身のサーバーマニュアルやネット検索などで調べていただければと思います。
※「迷惑メール扱い対策 SPFレコード追加 設置サーバー名」などで検索すれば出てくると思います。

経験上、必ずしもこの設定を行わなくても問題ないケースも多いですが、できる限りやっておくべきです。

エックスサーバーの場合にはサーバー管理画面(サーバーパネル)で簡単に設定できます。
※サーバーパネル→「DNSレコード設定」→「設定ドメイン選択」→「DNSレコードの追加」で行えます。

エックスサーバーの場合の設定例

以下のように設定すればOKです。

ホスト名:空(入力しない)
種別:TXT
内容:v=spf1 +ip4:111.222.333.444 ~all
※「111.222.333.444」の部分はサーバーのIPアドレスです。設置先サーバーのIPアドレスを設定ください。

SPFレコードが正常に設定できているかチェックする

以下ページでチェックできます。
http://www.kitterman.com/spf/validate.html

以下の画像を参考にチェックしてみて下さい。
DNSの性質上、設定してから反映されるまでに時間がかかる可能性もあります。(経験上、数分~1時間程度)

1,必要事項を入力する

2,結果を確認する
NGの場合の表示

OKの場合の表示

SPFについてはまた以下のサイトも参考になるかもしれません。
※特にドメインのブラックリスト入りや設定が反映されたかどうかなどを確認できる外部サイトのリンクがあります。
http://salt.iajapan.org/wpmu/anti_spam/admin/operation/information/spf_i01/

3,-fオプションによるエンベロープFrom(Return-Path)の設定(推奨)

これの実際の効果のほどは私の経験上わかりませんが、 またサーバーのPHPがSafeMode(セーフモード)で動作していると実質使えないため、配布版には実装していませんが、設定することで改善できる可能性もありますし、将来的に問題が出るリスクを防ぐ意味でもやっておいて損は無いと思います。

尚、これを設定すると、ユーザーが入力したメールアドレスへの自動返信メールで送信先が見つからなかった場合に 管理者宛に「Mail Delivery System」から「Undelivered Mail Returned to Sender」というメールが届きます。
※宛先不明で戻ってきたことを意味します。

SafeMode(セーフモード)かどうかをチェックする方法

ご自身のサーバーがセーフモードかどうかわからない場合は以下1行の記述をmail.phpの上のほうにでもコピペし、
入力→確認画面と移動して「セーフモードです」と表示されれば設置先のサーバーはセーフモードということになります。その場合はこちらの-fオプションによるエンベロープの設定は行なえません。

経験上、今の時代はセーフモードとなっているサーバーは少ないと思います。
(公式マニュアルでは「この機能は PHP 5.3.0 で 非推奨となり、 PHP 5.4.0 で削除されました。」とあります)

if(ini_get('safe_mode')) exit('セーフモードです');

※確認が済んだら必ずこの記述は削除してください。

SafeMode(セーフモード)ではない場合は以下の設定方法をご参考の上で実施して下さい。

設定方法

mail.phpの以下の箇所を探してください。
※自動返信メールの送信処理部分です。(mail.php内には1箇所しかありませんので必ず見つかります)

if($remail == 1 && !empty($post_mail)) mail($post_mail,$re_subject,$userBody,$reheader);

これを以下に変更してください。

if($remail == 1 && !empty($post_mail)) mail($post_mail,$re_subject,$userBody,$reheader,'-f'.$to);

※末尾に「,'-f'.$to」を追加しただけです。

管理者宛メールの方も必要に応じて同じように末尾に「,'-f'.$to」を追加してください。
(上記の記述のすぐ上にあります)

尚、余談となりますが、これを行なった場合で管理者のメールアドレスを設置先サイトのドメインではないメールアドレスを設定した場合に送信されたメールのメールヘッダで「spf=softfail」という問題が発生したことを確認しています。ただ、それによって迷惑メールに振り分けられるかどうかまでは確認できていません。少なくとも当方では特に影響なかったです。 (要するにこのことからも管理者のメールアドレスは設置先サイトのドメインと同じドメインとすべきということですね)

4,スパムのブラックリストに登録されているかのチェック

以下ページで説明しておりますのでご参考ください。
そもそも設置先のサイト(サーバー)がブラックリストに入ってしまっている場合、 いくら対策を行なっても意味がありません。
https://www.php-factory.net/cms/detail.php?id=4

以上。

それでも改善しない場合には、さらにネットで調べてみていただければと思います。まだまだできることがあるようです。
いずれにしても私の経験上では上記設定のみで特に問題は発生していません。
最後の手段としてSMTP経由での送信も随時承っておりますので必要に応じてご相談ください。(~2万円程度)

PHPメールフォーム(無料版)

PHPメールフォーム(有料版)

新着情報・更新履歴CMS(無料版)

投票・アンケートシステム(無料版)

テロップCMS(無料版)

写真ギャラリーCMS(無料版)

営業日カレンダーCMS(無料版)

営業日カレンダーCMS(有料版)

カレンダー予約フォーム(無料版)

カレンダー予約フォーム(有料版)

リンク集ページCMS(無料版)

アクセスカウンター(無料版)

ダウンロードカウンター(無料版)

その他

メールフォームの各種カスタマイズならお任せ下さい
業務効率化が可能なPHPオリジナルCMS制作します

役立つかも?なもの

豆知識や役立ち事など

PHPについて

各種情報