目次
WordPress(ワードプレス)でサイト制作を行うとき、Contact Form 7(コンタクトフォーム7)を利用してユーザーからのお問い合わせに対する自動返信メールを送っている方は多いのではないでしょうか。
その自動送信メールが迷惑メールに分類されてしまう問題が起こっており、「WP Mail SMTP」というプラグインを導入する解決方法を案内している記事が多数あります。しかしプラグイン導入前にまず試してほしい手軽な方法は「SPFレコード設定」です。
「WP Mail SMTP」は送信方法をサーバー経由に切り替えるため比較的大掛かりですが、「SPFレコード設定」はDNSサーバーに送信元を証明する一文を追加するだけの簡単な作業だからです。
弊社の記事では「意味の理解」を大切にしているため、これらの解決方法が「何をやっているのか」を解説します。具体的な手順だけを暗記するのではなく意味を把握しておくと他のケースにも対応できるようになるので、ぜひ覚えておきましょう。
具体的な手順は、それぞれ別のページをご紹介しましたので、一緒に見ていただくと解決がスムーズになると思います。
ここから、まずメール送信の仕組みの基本と「なぜ迷惑メール入りしてしまうのか」を確認します。その後「WP Mail SMTP」を導入すると何がどう変わるのか、それに対して「SPFレコード設定」とは何をすることなのかを解説していきます。
メールを送信する3つの方法
メールを送信する方法は、大きく分けて3つあります。
- メールサーバーを経由する
- PHPのプログラムで送信する
- メール配信サービスを利用する
以下で、ひとつずつ見ていきましょう。
メールサーバーを経由する
メールサーバーに接続(ログイン)し、そのシステムを利用して送信する方法です。
iPhoneなどスマートフォンのメールアプリの設定、もしくは「サンダーバード」などPCメールソフトの設定でログイン画面を見たことがあるのではないでしょうか。
上はiPhoneのログイン画面です。ここから利用しているメールサービスを選んでIDとパスワードを入力して接続します。
このメールサーバーには「送信」「宛先の割り当て」「受信」を担当する3種類のサーバーがあります。
- 送信:SMTPサーバー
- 宛先の割り当て:DNSサーバー
- 受信:POP3/IMAPサーバー
したがって、正確には「SMTPサーバー経由で送信する」ということになります。
サーバーには、gmailなど個人向け無料サーバーのほか、法人向けにレンタルやクラウドのものがあります。どのサーバーでもアカウント登録があり、IDやパスワードによる認証が必要なため「なりすまし」がされにくいのが特徴です。
PHPのプログラムで送信する(ローカル経由)
メールサーバーを経由せず、ソース内で任意の「from(送信元)」を設定してPHPのプログラムで送信する方法です。サーバーを経由しないことからローカル経由と呼ばれることもあります。WordPressのContact Form 7は、何も設定しなければこの方法でメールを送信します。
アカウント認証のあるサーバー経由の送信と異なり、送信元のメールアドレスを任意で決められることから「なりすまし」や悪用がされやすくなります。存在しないメールアドレスを設定したとしても送信できてしまうのです。それゆえに迷惑メールであると判定されて相手に届かないことがあります。
メール配信サービスを利用する
「sendgrid」や「mailgun」といったメールの配信サービスを利用して送信する方法もあります。アカウント登録するだけで楽に利用でき、メールマガジンなどで大量にメールを送る、特定のターゲットにセグメント配信できるなど機能も充実しています。
各サービスが持っているSMTPサーバーを経由し、さらにメール到達率を上げるためのさまざまな仕組みを備えているため、迷惑メール判定されにくいのが特徴です。
ただしエンジニアの知見がないとうまく設定できない場合があるため、やや導入ハードルが高くなることもあります。
なぜ迷惑メール入りしてしまうのか
上でも説明した通り、WordPressでよく使われるプラグイン「Contact Form 7」では、基本的にPHPプログラムでの送信となります。
この方法では送信元メールアドレスを好きなように設定できるため、サイトアドレスと異なるドメインのメールアドレスを送信元として設定すると、なりすまし判定を受けて迷惑メールに入りやすくなります。
例)
サイトアドレス:https://united-rivers.com/
メールアドレス:info@ur-mail.com
フォームを設置したサイトのサーバーとメール送信サーバーが異なる(=同一人物であると判断できない)と、迷惑メールとして扱われる可能性が高いということです。
「WP Mail SMTP」の解決法は何をしている?
そこで、サイト運営の現場ではWordPressのプラグイン「WP Mail SMTP」を導入するという解決方法が提案されます。
これを使うと、フォームをメールサーバーやメール配信サービスに接続することができます。つまり、PHPプログラムの送信方法から、SMTPサーバーを経由した送信方法へと切り替えることができるのです。
「WP Mail SMTP」導入の手順は、以下の記事を参考にしてみてください。
ContactForm7の自動返信が迷惑メール判定!WP Mail SMTPで解決
しかしやや難易度の高い手順を踏んで「WP Mail SMTP」を導入しメールサーバーと接続してみても、なりすまし判定されてしまうことがあります。そこで、プラグインを導入する前にまず試したい簡単な解決方法「SPFレコード設定」をご紹介します。
「SPFレコード設定」とは?
「WP Mail SMTP」の導入がSMTPサーバーを経由させるアプローチであるのに対し、「SPFレコード設定」は宛先の割り当てを担当するDNSサーバーのほうに働きかけるアプローチです。
DNS:「Domain Name System」
⇒ドメイン名に対応するIPアドレスを割り出すシステム
SPF:「Sender Policy Framework」
⇒メールの送信元を偽っていないかチェックするための仕組み
SPFレコード設定とは、宛先の割り当てを担うDNSサーバーに対して「正当な送信元(ドメイン)からのメールであると認証されている」と伝えることです。簡単に言えば、送り主の本来の住所とは違うけれども、同じ主からの手紙ですよと宣言することなのです。
これにより、PHPプログラムでの送信でも、迷惑メール判定されにくくなります。
SPFレコードの設定方法は、以下の記事を参考にしてみてください。
※エックスサーバーを例にした手順
WordPressから配信されるメールが迷惑メール判定されないようにSPF設定を追加する方法(Xserver限定)
解決方法の意味を理解する
WordPressのContact Form 7から自動送信メールを送る時、SMTPサーバーを経由させるのが「WP Mail SMTP」、DNSサーバーに正当な送信元であることを知らせるのが「SPFレコード設定」です。
いずれもなりすまし判定を防いで迷惑メールに分類されにくくするための方法ですが、これらを対応すれば100%解決するというわけではありませんのでご注意ください。
これまでに「WP Mail SMTP」のプラグイン導入や「SPFレコード設定」の作業を実際にやったことがあるという方でも、それが一体どういう意味を持つのかというところまで理解できていないことがあると思います。
具体的な方法だけでなく意味もあわせて理解しておくことで、他のパターンのトラブルにも応用できるはず。メール送信がうまくいかないとき、この記事が解決の一助になりましたら幸いです。