Xサーバ設置のWordPressフォームでフォームメールが消える不具合
(元記事「GoogleWorkSpaceドメインメールで、Wordpressのサーバ送信メールが消える症状への対応」<2021年2月28日投稿>を2021年5月16日にタイトル変更・加筆修正しました。)
以前に書いた内容(このページの下方にそのまま掲載)が解決しましたので加筆修正。
加筆修正分・Xサーバとのやりとり
【症状】
【弊社環境】
WEBSITEサーバ:Xサーバ
ドメイン管理:Xサーバ
メールサーバ:GoogleworkSpace
WordPressのContact Form 7のメールが、GWS・Gmail(自社のアドレス)にいつからか届かなくなった。
daemonも届かない。消える。(届いていないこと自体がわからない)
【判明した原因】
Xサーバでメルマガをつくったことが原因でローカル配送(google用語で内部解決)が起き、フォームにReply-To:を設定していなかったのでエラー返信が消えた、ということでした。
Xサーバでは、サーバ内にドメインアカウントがあると、『ローカル配送』という機能?が働いて、MXレコードを読まずローカルのアカウントに優先してメールを振り分けるそうです。
Q 「いや、メールアカウントは元々Xサーバに作っていませんけど?」
A 「Xサーバ付属のメーリス機能・メルマガ機能を使うと”メールアカウントがある”扱いになります」
Q 「??、送信用のメルマガアドレスに”ローカル配送”されると、どこで受信されるんですか?」
A 「受信できませんのでuser unknownエラーで返します」
Q 「フォーム送信のメールにエラーを返すってどこに返すんですか?」
A 「Return-Path(フォームのReply-To:)に返します」
Q 「Reply-To:を設定していなかったら、返したメールがエラーになるかと思います。
そのエラーはどこへ?ログはあるんじゃないか?アラートは来ないのか?」
A 「メールは保持されません」
このやりとり、仕事の合間での問い合わせということもあり大分時間かかりました。
Xサーバのサポートは法人プランでもグループ対応なので、担当者が変わり何度も最初から説明が必要です。
メルマガを作るとローカル配送が起きるのはまだわかるとして、その後の自動返信メールが失われるのは、どうでしょうか。迷惑メール対策でReturn-Pathを表にしたくない(設定しない)フォームって結構あると思いますが。
ちなみに「メルマガ・メーリスを作るとメールアカウントがあることになり、MXレコードを読まなくなるという仕様はどこかに説明されてあるのか?」という質問にはhttps://support.xserver.ne.jp/manual/man_domain_dns_setting_mail_server.phpに書いてあるとのことです。
※このマニュアルですが、1つ上の階層を見てもらえればわかるのですが、Gmail利用の人は見逃がしやすい(普通は見逃す)順路になっています。私は見逃しました、もちろん。
【解決策】
メルマガ運用を始めてしまっていますので、フォームのSMTPをプラグインを使用してGoogleSMTPにしました。reCAPTCHAも念のため外したままで運用しています。
過去記事の経過は、テストアカウント(Xサーバ)でのフォーム送信をしていたため、ローカル配送との切り分けが出来ず混乱しておりましたので、そこのメカニズムが整理されてモヤッとしたものが晴れ、当面の問題も解決したように思います。
落ち着いたら、reCAPTCHAももう一度検証したいと思います。
最初にやりとりしていたgoogleのサポートの方は丁寧に対応してくれました。Googleのフィルタリングの過剰さを疑っていた私に。googleさんスミマセン、ありがとうございます。
また「Xサーバではこの事例はちょいちょいある」ことを教えて頂きました。上述のgoogleユーザーを別ルートに誘導するマニュアル表記ならそうかと思います。google、Ⅹサーバ、webフォームというよくある組み合わせならではでしょうか。
3カ月かかりましたが、また一つ勉強になりました。
過去の記事・SMTP対応/reCAPTCHAの問題
以下、過去の記事です。
reCAPTCHAの問題か、Xサーバの問題か、原因の切り分けができていない内容になっていますのでご注意ください。
【症状】
GoogleWSをメールサーバとしてドメインメールを運用した際に、WordpressのContact Form 7のメールが、GWS・Gmail(自社のアドレス)に届かない。
フォームでは受付は完了していて(入力者への受付完了メールは送信されていて)、自社側へのメールのみ来ない(だから気づかない)。GWS管理などでアラート等は出ない。フォームからの自社へのメールは完全に失われる。
症状の原因は、GWSが、WPのサーバからのメール送信をなりすましと認識してしまうからと推測。GWSでドメインメールを運用するとSMTP利用制限が厳しいのでしょうか。
(以下の対応は、結果的にGWSドメインメールへの送信を諦めた運用です。)
【対応】
①プラグインWP Mail SMTPを導入。
Cloud PlatformでのGmailでのSMTP認証設定。
設定参考サイトはこちら。(ありがとうございます)https://jajaaan.co.jp/app/business-tools/wordpress-gmail-gsuite/
これで一度は解決し、メール送信できるようになったものの、1週間程度で再び不具合。(初期の症状とはやや変わり、メールフォームからの送信自体が失敗となる)
プラグインWP Mail SMTPのテストメールをしたところエラー1、アラート2つの表記。
②SPFエラーへの対応
SPFはもともと入力済みではあったが構文変更などの可能性を考慮し、GWSの『確実なメール配信となりすまし防止(SPF)』の記事を参照しながら、サーバのDNSにレコードを追記。
v=spf1 ip4:IPアドレス include:_spf.google.com include:ドメイン -all
これでテストメールでのSPFエラー表記は消えたものの、テストメールは配信されない。フォームエラーも解消されない。
③警告のあったDKIMを設定。
GWSの『DKIM を設定してメールのなりすましを防ぐ』を参照。
プラグインSMTPテストでのアラートは解消されたものの、テストメールは配信されない。フォームエラーも解消されない。
④GWS経由を諦め、SMTPサーバ自体を変更
もうひとつのアラートはDMARCで関係なさそうなので、ここで諦めて方針転換。サーバデフォルトのSMTPの利用に変更。
Xサーバのデフォルトメールを活用し『WP Mail SMTP』にて送信メール設定。
プラグインSMTPテストは成功する(エラー無・メール配信有り)が、フォームだとエラー。送信元・送信先を「個人Gmail」「他社メール」「GWS内ドメインメール」でそれぞれ試しても不可。
⑤reCAPTCHA(v3)を解除
フォームのみエラーが起きていることから、Contact Form 7に設定していたreCAPTCHA(v3)を疑い、解除。XサーバSMTPから、Xサーバメアドへ送信。
メールフォームでの送信復活!
どうも、reCAPTCHA(v3)はブラウザを選ぶよう。(下記参照させていただきました)
他ブラウザで検証はしていませんが、いい加減疲れたので、reCAPTCHA(v3)を諦めることに。
⑥迷惑メール対策
reCAPTCHA(v3)を解除すると今度は当然のごとく大量の迷惑メール。
上記リンクであるような閾値の対策も出来そうなのですが、『googleの体質・方針に怖さを感じたこと』『reCAPTCHA(v3)はスピードテストでも重くなること』などから別の方法を導入。
下記を参照させていただき、日本語のみを受付とすることにしました。
【結論】
WordPressのメールフォームは、GoogleWorkspace内で運用する同一ドメインのメールSMTPからは送信しないのが安全
最終段階でreCAPTCHAに気づいたので、上記対応のうち、GWSの問題かreCAPTCHAの問題かの切り分けは厳密には出来ていませんが、フォームから自社ドメインメール(GWS)への送信はreCAPTCHA無し&他SMTP(Xサーバ)の場合でも出来ないので、GWSドメインメールのなりすまし対策が強すぎることがメインに感じます。
GWSのドメインメールの標準的な運用でも、API認証してのGmail利用のSMTPでも、一旦は運用可能になる点が怖い。その後のGoogle側の”学習”でいつのまにか静かにフォームメールが消え、不具合自体が発見できない。送受信ともGoogleになるからか一連の流れでデーモン自体がこない(XサーバでSMTP設定するとXサーバからデーモンは来る)。
徐々に学習していくGoogleのいい面はたくさんありますが、アルゴリズムは予測するしかなく、かつgoogleサービス全体的に変更が多すぎ常なるブラッシュアップが必須になります。委ねすぎると怖いという、いい教訓です。