手順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日失効問題は解消した可能性が高いと判断できます。
コメントを残す