エラー: invalid_grant: 不正なリクエスト

要約する:チャットGPT当惑

:このガイドは、WP Mail SMTP のGmail メール送信機能に適用されます。

このエラーの意味

WP Mail SMTP に保存されている OAuth 認証情報(クライアント ID およびクライアントシークレット)の設定が間違っているか、Google Cloud Console のアプリケーションと一致していません。「トークンが期限切れ」の場合とは異なり、これは単なるトークンの有効期限切れではなく、設定の不一致によるものです。

よくある原因

  • WP Mail SMTPへの入力時にクライアントIDまたはクライアントシークレットの入力ミスがあった
  • 使用されているOAuthクライアントの種類が間違っています(例:Webアプリケーションではなくデスクトップアプリ
  • Google Cloud Consoleで承認されたリダイレクトURIに、WP Mail SMTPのコールバックURLが含まれていません
  • Google Cloud Console 内の OAuth 認証情報は、もはや存在しません(削除されたか、新しいものに置き換えられました)。

解決方法

このエラーを解決するための、完全な手順ガイドをご紹介します。

ステップ 1: OAuth クライアントの種類を確認する

最も一般的な原因は、誤ったアプリケーションタイプで作成されたOAuth認証情報です。まずは現在設定されている内容を確認してください。

Google Cloud Consoleを開き、WP Mail SMTP で使用しているプロジェクトを選択します。次に、「API とサービス」>「認証情報」に移動します。

OAuth 2.0 クライアント ID」の下で、ご自身の認証情報を見つけ、タイプが「Web アプリケーション」であることを確認してください。すでに「Web アプリケーション」と表示されている場合は、手順 2 に進んでください。タイプが「デスクトップアプリ」またはそれ以外の場合は、新しい認証情報を作成してください。

新しいものを作成するには、「認証情報の作成」をクリックし、「OAuthクライアントID」を選択します。次に、「アプリケーションの種類」を「Webアプリケーション」に設定します。

アプリケーションの種類として「Webアプリケーション」を選択してください

以下 許可されたリダイレクトURI、クリック + 追加URI そして入力してください https://connect.wpmailsmtp.com/google/.

リダイレクトURIを入力してください

最後に、「作成」をクリックします。

「作成」をクリックして続行してください

ステップ 2: リダイレクト URI を確認する

OAuthクライアントのタイプがすでに正しい場合は、次にリダイレクトURIを確認してください。

APIとサービス » 認証情報、自分の横にある鉛筆アイコンをクリックして Webアプリケーション OAuthクライアント。次に、 許可されたリダイレクトURI、確認する https://connect.wpmailsmtp.com/google/ 以下に正確に記載されています。 https および末尾のスラッシュ。

URI が入力されていない場合は、「+ URI を追加」をクリックし、上記の URL を貼り付けて、「保存」をクリックしてください。

ステップ3:クライアントIDとクライアントシークレットをコピーする

OAuthクライアントタイプとリダイレクトURIを確認したら、その認証情報をコピーし、WP Mail SMTPに貼り付けられるようにしておきましょう。

APIとサービス」»「認証情報」の「OAuth 2.0 クライアント ID」で、該当する認証情報の横にある鉛筆アイコンをクリックします。

クライアントIDを編集する

次に、クライアントIDをコピーしてください。

クライアントIDをコピーする

次に、「+ シークレットを追加」をクリックして、新しいクライアントシークレットを生成します。

「シークレットを追加」をクリックして、クライアントシークレットを生成します

最後に、クライアントシークレットをコピーしてください。

:クライアント ID やクライアント シークレットをコピーする際、余計なテキストやスペースが混入しないようご注意ください。Google では、クライアント シークレットの全文が表示されるのは一度きりです。

ステップ4:WP Mail SMTP を更新し、再認証を行う

新しい認証情報をWP Mail SMTPに貼り付け、Googleアカウントを再接続してください。

まず、「WP Mail SMTP」»「設定」に移動し、「Google / Gmail」セクションまでスクロールします。次に、「接続を削除」をクリックして、古い認証情報を削除してください。

「接続を解除」をクリックしてください

その後、新しいクライアントIDクライアントシークレットをそれぞれの入力欄に貼り付けてください。

クライアントIDとクライアントシークレットを貼り付けてください

次に、「設定を保存」をクリックし、続いて「プラグインがGoogleアカウントを使用してメールを送信することを許可する」をクリックして、OAuthフローを開始します。

「Googleアカウントを使用してメールを送信する」を許可するをクリックしてください

最後に、Googleアカウントを選択し、要求された権限を許可してください。

ステップ5:テストメールを送信する

テストメールを送信して、修正が正常に行われたか確認してください。

修正内容を確認するには、「WP Mail SMTP」»「ツール」に移動し、「メールテスト」タブをクリックしてください。「送信先」フィールドに受信者のメールアドレスを入力し、HTMLの切り替えスイッチを「ON」にしたまま、「メールを送信」をクリックしてください。

テストメールタブ

完了したら、成功メッセージが表示されているか確認し、メールが受信トレイに届いているか確認してください。

備考

  • リダイレクトURIは、以下を含め、完全に一致する必要があります。 httpshttp および末尾のスラッシュ。
  • Gmail APIが有効になっていない場合は、「APIとサービス」>「ライブラリ」に移動し、「Gmail API」を検索して、「有効にする」をクリックしてください。
  • 認証情報を修正した後も7日ごとにエラーが再発する場合は、Google Cloud プロジェクトが「テスト」モードになっている可能性があります。「API & Services」>「OAuth 同意画面」>「対象ユーザー」でアプリを本番環境に公開し、「アプリを公開」をクリックしてください。

これで完了です!これで、Gmailで発生する「invalid_grant: Bad Request」エラーの解決方法と、WP Mail SMTPを使ってメール送信を再開する方法がわかりましたね。

無料のWP Mail SMTPプラグインをお試しください

お気に入りのSMTPプロバイダーを使って、WordPressのメールを確実に送信しましょう。