Contact Form7などのプラグインを含む WordPress からのメール通知は基本的に PHP の機能が使われます。
ただし、この方法はホスティング側の状況で受信側でスパム判定されるケースも多く、 WordPress の管理者という立場では制御できないケースもあります。
この場合は外部の SMTP(送信サーバー)を使うなど、プラグインを介して柔軟に対応します。
この際に Gmail を SMTP として利用するケースは多いのですが、顧客より先日(2021 年5月初旬時点)からフォーム送信ができなくなったと問い合わせがありました。
定番の Contact Form7を使用していますが、「メッセージの送信に失敗しました。後でまたお試しください。」というエラーが発生するようです。
フォーム送信できない…
Contact Form7でのエラー
この赤の囲み線はメールサーバーでの問題を示唆しています。
つまり、 Contact Form7側の問題ではなさそうです。
Easy WP SMTP でのテスト
STMP の送信プラグインで確認してみたところ、 Google 側のセキュリティで認証に失敗しているようです。
先日までは問題なかったので、なんらかセキュリティの強化があったのでしょう。
アプリパスワードで認証する
Google 側でアプリパスワードを作成することで認証が可能になります。
このために、まずモバイル端末による2段階認証を有効にする必要があります。
二段階認証を有効にする
携帯電話の番号を入力して、 SMS での認証を完了します。
Google へのログインには常に携帯電話での認証が必要です。
ただし、自分のパソコンなどでは、次回以降の認証をスキップ指定できます。
アプリパスワードを設定する
アプリを選択→名前を入力を選び、 WordPress など任意の名称を付けます。
→アプリパスワードについての Google ヘルプ
プラグイン側でパスワードを変更
Easy WP SMTP や WP Mail SMTP でアプリパスワードを反映します。
通常の SMTP パスワードの項目を書き換えます。
以上で正常に Google 側で認証できるようになります。
分からない場合は再度、発行します。
2022 年6月以降の Gmail 送受信問題
Gmail を Windows や Machintosh 上のサードパーティークライアントで送受信していた場合、 Google アカウントで2段階認証を有効にした段階でこれまでのパスワードでは接続できません。
Thunderbird などですね。
上記の手順でメールクライアント用のアプリパスワードを発行して、クライアント側でそのパスワードを適用してください。
To help keep your account secure, from May 30, 2022, Google no longer supports the use of third-party apps or devices which ask you to sign in to your Google Account using only your username and password.
これにより、サードパーティー製アプリでは、アプリパスワードが必須となるようです。