Contact Form 7などのプラグインを含むWordPressからのメール通知は基本的にPHPの機能が使われます。
ただし、この方法はホスティング側の状況で受信側でスパム判定されるケースも多く、WordPressの管理者という立場では制御できないケースもあります。
この場合は外部のSMTP(送信サーバ)を使うなど、プラグインを介して柔軟に対応します。
この際にGmailをSMTPとして利用するケースは多いのですが、顧客より先日(2021年5月初旬時点)からフォーム送信ができなくなったと問い合わせがありました。
定番のContact Form 7を使用していますが、「メッセージの送信に失敗しました。後でまたお試しください。」というエラーが発生するようです。
フォーム送信できない…
Contact Form 7でのエラー
この赤の囲み線はメールサーバでの問題を示唆しています。
つまり、Contact Form 7側の問題ではなさそうです。
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.
これにより、サードパーティー製アプリでは、アプリパスワードが必須となるようです。