目次
なぜ「送信成功」と表示されても通知メールが届かないのか?
実は問い合わせフォーム上で「送信成功」と出ているのは、あくまで 「WordPress側の処理が成功した」 という意味にすぎません。
郵便に例えると、
- WordPress:「手紙を出す準備は完了しました」
- メールサーバー:「じゃあ送ってみますね」
- Gmail:「この封筒、差出人が怪しいから受け取り拒否!」
というように、それぞれ別の登場人物が関わっています。
通知メールが届かないことを解決するためには、問い合わせフォームからのメール送信の仕組みを理解することが必要です。
WordPress のお問い合わせフォーム(Contact Form 7など)は、フォーム送信後に「メールを送信するよう指示」を出します。
しかし、このメール送信の指示は「実際にメールサーバーを通じて受信者まで配送される」ことを保証するものではありません。
実際にメールを配送するのはメールサーバーですが、無事に受信側のメールサーバーまで配送されるかどうかを左右するのが
SPF/DKIMといった「認証」、そしてDMARCや受信側で設定される「ポリシー」です。
・SPF / DKIM / DMARC の役割
GmailやOutlookなどの大手プロバイダは昨今の「なりすましメール」や「迷惑メール」の対策に力を入れており
SPF / DKIM / DMARC といったメールの送信ドメインの認証技術の設定を推奨しています。
特にGmailでは2024年2月よりGmailに送信されたメールに対し、SPF / DKIM / DMARCの設定をしておかなければ受信拒否する可能性がある事を公表しています。
以下に各認証技術の役割や効果を記載します。
| 用語 | 役割 | 効果 | 郵便に例えると |
| SPF | 送信元のメールサーバーが、そのドメインから送信する権限を持っているか確認する仕組み。 | なりすまし送信(例: 自分のドメインを勝手に使って迷惑メールを送る)を防ぐことができる。 | 「この差出人からの手紙は、この郵便局から出していいですよ」と、差出人リストを郵便局に登録しておく仕組み。 |
| DKIM | 送信メールに電子署名を付与し、受信側で改ざんがないか検証する仕組み。 | メールが送信途中で改ざんされていないことを保証できる。 | 「封筒に割印を押す」ようなもの。途中で中身がすり替えられていないかを保証します。 |
| DMARC | SPF と DKIM の検証結果をもとに「そのドメインからのメールをどう扱うか」を受信側に指示する仕組み。 | 「自分のドメインを不正利用したメールは受け取らないでほしい」という方針を宣言できる。 さらに、レポート機能により不正利用の有無を把握できる。 | 「もし差出人リストに無い手紙が来たらどう扱うか」を郵便局に指示する仕組み。受け取り拒否するか、要注意として仕分けるかを決められます。 |
つまり、お問い合わせフォーム上では「送信は成功しました」と表示されても、その命令を元に
メールサーバーがGmailに送信を試みた際に、これらの認証技術の設定がされていなかったり
設定されていても内容が適切ではないドメインのメールはGmailに受信拒否されてしまう、という仕組みになっています。
届かないメールを「届くメール」に変えるために
上述の通り、Gmailなどにメールを送信する際は自分のドメインにSPF / DKIM / DMARC といった認証技術を設定し「迷惑メール」と判断されないように対策を講じる必要があります。
さくらのレンタルサーバでは、サーバーコントロールパネルから設定が可能ですので設定がまだの場合は、設定することをお薦めします。
さて、ここからが本題ですが、自分のドメインにSPF / DKIM / DMARCを設定していても、問い合わせフォームからメールを送信すると、Gmailに届かない、といったケースが発生します。
これにはSPFの認証の仕組みとさくらのレンタルサーバの仕様が関係します。
まずはSPFの仕組みを解説します。
SPF(Sender Policy Framework)とは、送信元のメールサーバーがそのドメインからメールを送信する権限を持っているかどうかを確認する仕組みです。
仕組みとしては、ドメインのDNS設定に「SPFレコード」という情報を追加しそのドメインから送信を許可するサーバーの情報を登録します。
受信側のメールサーバーは、送信元ドメインのDNSを参照して、送信に利用されたサーバーが許可されたサーバーかどうかを確認し、なりすましや迷惑メールの判定に利用します。
例えば、「example.com」というドメインのSPFレコードに「さくらのレンタルサーバの送信サーバー」を登録しておくことで、受信側は「このメールは正規のサーバーから送られている」と確認できるようになります。
逆に、登録されていないサーバーから送られた場合には、不正なメールである可能性が高いと判断されます。
以下のサポートサイトにも解説がありますので、興味がある方は参考にしていただければと思います。
▼ SPFレコード(Sender Policy Framework)とは
https://help.sakura.ad.jp/domain/2306/#heading-0
さくらのレンタルサーバの仕様
次に、さくらのレンタルサーバの仕様を解説します。
さくらのレンタルサーバ上からWEBプログラムなどで送信元メールアドレスを指定せずメール送信を実施した場合送信元メールアドレスは「アカウント名@www****.sakura.ne.jp」というメールアドレスに自動補完されます。
例として、ご利用のさくらのレンタルサーバの初期ドメインが「example.sakura.ne.jp」で収容ホストが「www1234.sakura.ne.jp」の場合「example@www1234.sakura.ne.jp」というメールアドレスから送信されるものとなります。
この場合、メールのEnvelope Fromのドメインは「www****.sakura.ne.jp」となり、このドメインにはSPFの設定が実施されておりませんので、SPFの認証が実施されずにメールが送信される動作となります。
「Envelope From(エンベロープフロム)」とは、メール送信の際にやり取りされる「送信元アドレス情報」のことを指します。封筒(エンベロープ)に例えると、宛名や差出人が書かれた封筒の外側の情報にあたります。
これは「本当は会社の住所から送りたいのに、封筒には勝手に“さくらインターネットの住所”が書かれてしまう」イメージです。受信側(Gmailなど)はSPFに登録された情報と封筒の差出人=Envelope From を照合します。
独自ドメインのSPFを設定していても、封筒に書かれた住所(www****.sakura.ne.jp)が独自ドメインと異なっているため、正規の郵便物と認めてもらえないのです。
結果、Gmailは「怪しい手紙」として受信を拒否してしまいます。
実際によくあるトラブルは「社内のアドレスには届くのに、Gmailには届かない」というケースです。
これは Gmail 側のフィルタリングが特に厳しいためで、SPFやDKIMが未設定だと高確率で受信が拒否されます。
一方で、同じメールでも社内サーバーなら通ってしまうので、「届いたり届かなかったりする」現象が起きるのです。
このような事態を回避するために、WEBプログラムからメールを送信する際は、サーバーに対してSMTP認証を行いEnvelope Fromのドメインも送信に利用する独自ドメインを名乗り、SPFの認証を実施できるよう設定する必要があります。
SMTP認証とは、メールを送る際に「この人は本当にこの差出人で間違いありません」と、あらかじめ身分証を提示して送信する仕組みです。
具体的にはメールアドレスとパスワードの組み合わせでサーバーにログインをした上でメールを送信する仕組みであり、後述する設定方法で設定を行うとEnvelope FromのメールアドレスをSMTP認証で使用したメールアドレスに指定することができ、SPFの認証が可能なドメインでメールの送信が可能となります。
例えるなら、「郵便局の窓口で身分証を見せてから手紙を投函する」ような仕組みです。
SMTP認証でユーザー名とパスワードを提示することで、封筒の差出人(Envelope From)も正しい住所で処理され、受信側が安心して受け取れるようになります。
WordPressのお問い合わせフォームではWP Mail SMTPというプラグインを使用することでサーバーにSMTP認証を実施した上でメールを送信することが可能です。
本記事の次のステップからはWordPressのお問い合わせフォームの中でも利用者の多いContact Form 7とWP Mail SMTP プラグインを使ってSMTP認証を行い、メールを送信する設定方法をご紹介します。
Contact Form 7 と WP Mail SMTP を使って設定する手順
Step1:Contact Form 7 をインストール・有効化する
お問い合わせフォームのプラグインは多くありますが、Contact Form 7が定番とされる理由は、開発歴が長く、ドキュメントやトラブルシューティング記事が多く、柔軟にカスタマイズできる点にあります。
ただし、初期状態では迷惑メール対策が弱く、メールの送信方式もGmailに届きにくいケースがあります。こうした課題を踏まえて、以降の手順で安全にフォームを運用できるように設定していきます。
1. WordPress管理画面の左側のメニューより「プラグイン」をクリックします。

2. 「プラグインを追加」をクリックします。

3. 右上のプラグインの検索窓に「Contact Form 7」と入力します。

4. 検索結果から「Contact Form 7」を探して「今すぐインストール」をクリックします。

5.インストールが完了したら「有効化」をクリックします。

以上で、Contact Form 7のインストール作業は完了です。
次にお問い合わせフォームを作成します。
Step2:お問い合わせフォームを作成する
1.左側のメニューより「お問い合わせ」をクリックします。

2.「コンタクトフォームを追加」をクリックします。
※WordPressのバージョンによっては「新規追加」など別の表示となっている可能性がございます。

3. お問い合わせフォームのタイトルを入力します。
後からページに貼り付ける際にどのフォームかを識別する名前です。外部には公開されません。

4. フォームを編集します。
4-1. フォームタブではお問い合わせフォームの内容を編集します。
デフォルトのものの他に追加したいものがあれば適宜追加します。

4-2. メールタブでは送信するメールの内容を編集します。
「メール」をサイト管理者宛のメールとし「メール(2)」を問い合わせ者宛のメールとすることが一般的です。

※「メール(2)」はメールタブの画面を下にスクロールしチェックを入れることで設定が可能です。

具体的な設定項目を以下に記載します。
■メール(問い合わせがあった際にサイト管理者が受け取るメールの設定です。)
送信先:お問い合わせを受信するメールアドレス
初期設定ではWordPress管理者のメールアドレスが設定されます。
送信元:お問い合わせの送信元メールアドレス(後述するWP Mail SMTPで利用するメールアドレスを指定します。)
題名:メールの件名
追加ヘッダー:メールの返信先
初期設定ではお問い合わせフォームに入力された問い合わせ者のメールアドレスが設定されます。
メッセージ本文:メールの本文の内容
■メール(2)
(用途は自由ですが、基本的には問い合わせがあった際に問い合わせ者が受け取るメールの設定です。自動返信メールとして設定する場合、スパムメールの踏み台として悪用される可能性もありますので設定には注意が必要です。)
送信先:お問い合わせフォームに入力された問い合わせ者のメールアドレス
送信元:お問い合わせの送信元メールアドレス
題名:メールの件名
追加ヘッダー:メールの返信先
初期設定ではWordPress管理者のメールアドレスが設定されます。
メッセージ本文:メールの本文の内容
お問い合わせフォームのセキュリティ対策については以下のコラムもご参照ください。
今、お問い合わせフォーム(メールフォーム)が危ない! 不正アクセスの増加と対処方法
4-3. メッセージタブでは問い合わせフォームでの各種表示メッセージを編集します。

例として「メッセージが正常に送信された」の項目は正常に問い合わせが送信された際に表示されるメッセージとなります。
以上でフォームの作成は終了です。
次に、作成したフォームをページに設置します。
Step3:固定ページにフォームを埋め込む
1. 左側のメニューより「固定ページ」をクリックします。

2. 「固定ページを追加」をクリックします。
※WordPressのバージョンによっては「新規追加」など別の表示となっている可能性がございます。

3. 新しい固定ページの編集画面が表示されますのでタイトルや本文に任意の内容を設定します。

4. 左上の「+」ボタンをクリックします。

5. 左上の検索窓に「Contact Form 7」と入力します。

6. 「Contact Form 7」をクリックします。

7. 「コンタクトフォームを選択」のブロックが追加されるのでプルダウンメニューより作成した問い合わせフォームを選択します。

8. 右上の「固定ページ」をクリックします。

9. 「スラッグ」をクリックします。
※WordPressのバージョンによっては「URL」など別の表示となっている可能性がございます。

10. 任意の公開URLを指定します。

11. 右上の「公開」をクリックします。

以上の手順でお問い合わせフォームを公開してもフォームからの送信自体は可能な状態となります。
しかしながら、冒頭で解説した通り、さくらのレンタルサーバでは送信メールのEnvelope Fromが「アカウント名@www****.sakura.ne.jp」というメールアドレスに自動補完され、SPF認証についてはNoneの判定となります。
この状態を改善するためWP Mail SMTPというプラグインを使用し、SMTP認証を実施した上でメールが送信できるように設定します。
Step4:WP Mail SMTPを導入し、SMTP認証を実施する
1. 左側のメニューより「プラグイン」をクリックします。

2. 「プラグインを追加」をクリックします。

3. 右上のプラグインの検索窓に「WP Mail SMTP」を入力します。

4. 「WP Mail SMTP」が検索結果に表示されたら「今すぐインストール」をクリックします。

5. インストールが完了したら「有効化」をクリックします。

6. WP Mail SMTPセットアップウィザードへようこそ!の画面が表示されるので「ダッシュボードに戻る」をクリックします。

7. 左側メニューの「WP Mail SMTP」をクリックします。

8. 「最優先の接続」にて設定をします。
8-1. 「送信元メールアドレス」に送信で利用するメールアドレスを設定します。
※Step2の4-2.で指定した送信元メールアドレスを指定します。
※送信元メールアドレスを強制使用のチェックは「オン」に設定しておきます。

8-2. 「送信者名」に任意の名前を設定します。

8-3. 「メーラー」で「その他のSMTP」を選択します。

8-4. 「その他のSMTP」で以下の通り設定をします。

SMTPホスト:さくらのレンタルサーバの初期ドメイン
暗号化:TLS
SMTPポート:587
認証:オン
SMTPユーザー名:送信元メールアドレス
SMTPパスワード:送信元メールアドレスのパスワード
8-5. 「設定を保存」をクリックします。

以上で、設定は完了です。
設定後は、必ずテストを行い Gmail に届くかを確認しましょう。
まとめ
以上の手順で「Contact Form 7」で作成したフォームから、SMTP認証を実施しメール送信が行えるようになります。
本記事の要点を以下にまとめます。
- お問い合わせフォームの「送信成功」表示はあくまで「ウェブ側の処理成功」。その先のメール配送は別物であることを理解すること。
- SPF / DKIM / DMARC を整えることは、今後どのサービスでも信頼性を判断する基準になってきています。
- 特に Gmail などへの送信でメールが届かない・迷惑メール扱いになる問題を避けるには、これらの仕組みを理解し適切に設定を行うことが重要です。
フォームを設置するとスパム攻撃の温床になることもあります。セキュリティ面は以下の記事も参考にしてください。
WordPress全体のセキュリティ対策を知りたい方は、こちらの基本解説もおすすめです。

