WordPress : OAuth 2.0になってから設定がトリッキーになった~Gmail送信が7日後に止まる原因と対策~

手順2:Client IDが正しいプロジェクトのものか確認する

ここは非常に重要です。

Google Cloud側でIn productionにしたつもりでも、WordPressプラグインに入力しているClient IDが別プロジェクトのものなら、問題は解決しません。

確認すべき場所は以下です。

Google Cloud Console
→ Google Auth Platform
→ クライアント
→ OAuth 2.0 Client ID

または、

APIs & Services
→ Credentials
→ OAuth 2.0 Client IDs

ここに表示されるClient IDと、FluentSMTPなどに入力しているClient IDが完全一致している必要があります。


手順3:FluentSMTPで既存のGmail接続を削除する

FluentSMTPの場合、WordPress管理画面で以下へ進みます。

WordPress管理画面
→ FluentSMTP
→ 設定
→ アクティブなメール接続

Gmail / Google Workspace接続が表示されている場合、右側の赤いゴミ箱アイコンを押して削除します。

これは、保存済みの古いOAuth tokenを削除するためです。


手順4:FluentSMTPでGmail接続を作り直す

既存接続を削除したら、右上の 「別の接続を追加」 を押します。

その後、次のように進めます。

別の接続を追加
→ Gmail / Google Workspace を選択
→ From Emailを入力
→ From Nameを入力
→ Client IDを入力
→ Client Secretを入力
→ Authenticate with Google & Get Access Token

FluentSMTP公式ドキュメントでも、Client IDとClient Secretを入力した後、Authenticate with Google & Get Access Token を押してアクセストークンを取得する手順が説明されています。


手順5:Googleの未確認アプリ警告が出た場合

再接続時に、次のような警告が出ることがあります。

このアプリは Google で確認されていません

これは、必ずしもTesting状態を意味しません。

今回のケースでは、Google Cloud側は本番環境になっていましたが、Googleによるアプリ確認が完了していないため、この警告が表示されました。

自分で作成したGoogle Cloudプロジェクトであり、自分のWordPressサイト用であることが確実なら、以下のように進めました。

詳細
→ 対象サイトへ移動
→ 続行
→ 権限を許可

この操作でFluentSMTP側に新しいtokenが保存されます。


手順6:送信テストを行う

認証が完了したら、FluentSMTPのメールテストを実行します。

FluentSMTP
→ メールテスト
→ 送信先メールアドレスを入力
→ Send Test Email

今回の検証では、この手順によりaccess tokenを取得でき、設定を完了できました。
その後、send mailも成功しました。


今回分かった重要ポイント

今回の検証で分かったことは以下です。

・7日後に切れる主因はaccess tokenではなくrefresh token
・Testing状態で取得したrefresh tokenは7日で失効し得る
・In production化(公開)だけでは古いtokenは置き換わらない (再接続が必要(
・FluentSMTP側で既存接続を削除して再接続する必要がある (どのpluginでも同様)
・未確認アプリ警告はTesting状態とは別問題
・自分のOAuthアプリなら「続行」で認証できる場合がある

特に重要なのは、Google Cloudを本番環境にした後、WordPressプラグイン側で再接続することです。


「未確認アプリ」の検証対応は必要か

今回の用途が、自分のWordPressサイトから自分のGmailへ接続して通知メールを送信するだけであれば、Googleのアプリ検証リクエストまでは必須ではない可能性があります。

ただし、次のような場合は検証対応を検討すべきです。

・不特定多数のユーザーにOAuthアプリを使わせる
・複数ユーザーのGmailに接続する
・Google Workspace組織で管理者制限がある
・警告画面から先に進めない
・Gmailの読み取りや削除など広範な権限を要求する

今回の検証では、Google Auth Platformの検証センターで、ブランディングは検証済み、データアクセス検証は不要と表示されていました。
そのため、まずは再接続後に7日を超えて送信できるかを観察する方針としました。


7日後の確認ポイント

設定後は、7日後だけでなく、8日目以降も確認します。

確認すべき項目は以下です。

・FluentSMTPのメールテストが成功するか
・WordPressの通知メールが送信されるか
・FluentSMTPのメールログに invalid_grant が出ていないか
・Token has been expired or revoked が出ていないか
・Googleアカウント側でアプリ連携が維持されているか

8日目以降も送信できれば、Testing状態のrefresh token 7日失効問題は解消した可能性が高いと判断できます。


人気順

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA