SMTP設定って何よーワードプレスとコンタクトフォームの事象で説明

ワードプレスでお問合せフォーム作成!…あれ?エラーでフォームが送信されない…調べたらSMTP…。2年くらい前にそんな状況に陥り、なんとなく調べた「WP mail SMTP」プラグインで、途中ドハマりしながらも、なんだかよくわからないまま解決したことがありました。
つい先日フォーム不具合でいただいたご相談が、まさに「SMTP案件」だったため、その時のことを書きます。一度は「サッパリさん」のままでしたが、今回はそれなりに向き合う事に…

目次

ワードプレスに仕込んだコンタクトフォームがエラーで送信できなかった

先日お客様より、ワードプレスサイト内にあるコンタクトフォーム(Contact Form 7)で不具合があるとのご連絡を頂きました。
フォームを入力し、送信ボタンをクリックしたところ、赤いボーダーラインで囲まれた「メッセージの送信に失敗しました。後でまたお試しください。」のエラー文言が…。
ちなみにコンタクトフォーム7の赤ボーダーエラーは、

赤いボーダーラインは Contact Form 7 が wp_mail() を使ってメール送信を試みたものの失敗したことを示しています。この問題を解決するためにはまず失敗の原因を突き止める必要があります。

私の場合は赤いボーダーラインのエラーが出るのですが、どうすれば直せますか? | Contact Form 7 [日本語]

メール設定ミス、メールサーバーのダウンなど、色々考えられるとのこと

とはいえ、コンタクトフォームの送信先はWPの管理者メールアドレスと同じであり、ワードプレスが入っているサーバー(お名前ドットコム様)のドメインメールを使用している。
一体何の問題があるのさ…(わからん)

調べてみると「SMTP設定」をしてみるようにと…

ネットで調べると、「WordPressでフォームのエラーにはSMTP設定が関係している」っぽい情報が多数。
冒頭で触れたように、「SMTP」にはなんとなく因縁があったのですが、腹をくくり?向き合う事に。
以前はたしか、管理者メールがGmailになっているワードプレス内で、コンタクトフォームの送信先を管理者メールにするとエラーになった…そこでWP mail SMTPをインストールして設定、苦しみの中解決したという感じだったと思う(よく覚えていないが)

とにかく改めてWP mail SMTPをインストールして設定してみることに

やってみた!因縁のSMTP設定

まずは今回の状況をお伝えすると、こんな感じです

状況

  • サーバー:お名前ドットコム
  • フォーム:Contact Form 7
  • フォーム送信先:WordPress管理者メールアドレス(お名前ドットコムのドメインメール)
  • エラー状況:フォーム入力後に「送信」ボタンを押すと、赤ボーダーに「メッセージの送信に失敗しました。後でまたお試しください。」のエラーが表示される

状況を打破するために試したのは、もちろんWP Mail SMTPというプラグインです。以前はこれでドハマりしたので、この鳩ちゃんの顔はよく覚えています。今回だって、調べるとこの子ばかり出てきた…

さて、プラグインをインストールして「有効化」すると出てくる「設定画面」。これ、いきなり迷うのです。何を使えばよいのやら…

そうそう、これこれ。よくわからない。

でもちょっと待って、今回使いたいのはお名前ドットコムのドメインメール。その場合は「その他のSMTP」を選ぶそう。選びました。

すると、はい。こんな画面が出てきます。
ここでサーバーの管理画面を見ながら情報を入れていきます。上からSMTPホスト、SMTPポート、SMTPユーザー名はメールアドレスを入力。それは現在WP管理者メールであり、コンタクトフォームの送信先に指定されているお名前ドットコムのドメインメール。しかし…パスワードが…、わからなかったのです。

一筋縄ではいかない…悩んだところ

今回、一番?のつまずきはここでした。

  • ご相談を頂いたお客様側では通常、お名前ドットコムのドメインメール宛のメールをGoogle Workspaceで受信するようにしていて、お名前ドットコムのWebメールは使っていなかった
  • そのため、お名前ドットコムのメールのログイン情報(特にパスワード)が不明。メールアドレス用のパスワードもわからない!!
  • 結果として、WP Mail SMTPに必要な「送信元メールアドレス+パスワード」が入力できず設定が進まない

そして最終的にはこうしました。

  1. お名前ドットコムで新規メールアドレスを作成(その際にパスワードも設定します)
  2. そのメールアドレスとパスワードをWP Mail SMTPに設定

結果、無事にフォームが送信できるようになりました。
問い合わせテストも問題なし!悩みに悩んだが、意外とあっさり抜けました。

改めて勉強 で、SMTPって何なのよ


さて、そもそもSMTPってなに?小学生にもわかるように説明してください、とchat gpt様に聞いてみました

SMTPは「メールを送るための郵便局の住所とルール」です。
WordPressはメール(手紙)を作ることはできますが、自分でポストに入れるのが苦手です。
SMTPサーバーを設定すると、ちゃんとした郵便局を通して届けてもらえるので、迷子になったり迷惑メール扱いされにくくなります。


WPのフォームでSMTP設定していないと、こんなリスクがあります

  • サーバーが内部でブロックしてしまう
  • メールが相手に届かない(送信エラー)
  • 届いても迷惑メールフォルダに入る

…うーん、抽象化されすぎてて、逆に納得できない。
ただ、SMTPを設定することで【送信者の本人確認】のようなことをしているのだそう。(確かにメールのIDとPWとか入力したしなあ…)
それで毎回のメール送信時にセキュリティチェックを合格してメールが送れるようになるのか…。
昨今のスパムメール対策として、レンタルサーバー側がセキュリティチェックを厳しくしてきているというのが背景にあるようです。
そういえば、初めてワードプレスでコンタクトフォームを使ったのは2021年末頃だったとおもうけど、その時はSMTP設定なんてしなくても、まったく問題はなかった気がする。
やはり時代の流れのようです。

参考:SMTP-AUTHとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

またワードプレスはメール送信するとき、wp_mail()というPHP関数でメール送信に必要な情報(宛先など)を集めて送信するだけのようで、そこに送信者の本人確認(ID屋やパスワード)情報はないわけです。
これでも以前は問題なかったけど、時代がそれを許さなくなり、各種レンタルサーバー屋さん側でセキュリティ対策をかけた結果、メールに身分証明をつけること(SMTP設定)が求められているということなのかと思っています

この「各種レンタルサーバー」というのは、サーバーによって状況は異なり、今回のお客様がご利用されていたお名前ドットコム様は、厳しい設定をされていたということのようです。そこに入っているワードプレスからのメール送信すら止めてしまった…

振り返ると

改めて今回起こっていた事とSMTPについてまとめてみました

今回のメールの流れ(SMTP未設定の場合)

  1. Contact Form 7 が WordPress の wp_mail() を使ってメールを作成
  2. お名前ドットコムのレンタルサーバーが、そのメールを送ろうとする
  3. 送信時に「認証なし」や「送信元情報不足」のため、
    • サーバー内部で拒否される(送信エラー)
  4. その結果、送信ボタンを押しても「送れませんでした」と表示される

SMTP設定=郵便局で身分証を見せてから送るイメージ。
これをしないと「怪しい手紙」として配達拒否されます(ヒー!)。
*配達されても受信拒否される可能性もあります

ちなみにお客様が確認していただいて判明したのですが、どうやらお名前ドットコムでは2025年1月以降に厳格化されたようで、それ以前はサイトからのフォームを受信されていたようです。
セキュリティ強化の流れの中で、今後はSMTP設定が必須と考えておくべきでしょう。

これからもSMTP

完全に私の備忘録ですが、同じような状況で困っている方の参考になれば嬉しいです。

  • SMTP設定は「ちゃんと届けるための郵便局登録」「送信者の本人確認」
  • 最近はこれをしないと届かないケースが増えている

以上です、読んでいただきありがとうございました!

WEB周りのご相談は、ハマ企画へ!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次