このモジュールは、PHPMailer SMTP モジュールと連携して動作し、OAuth2 経由で Google Workspace Gmail に認証を提供するプラグインとなることを目的としています。これは、Ian McLean (imclean) によって書かれた phpmailer_oauth2 からインスピレーションを得ています。 Ian のモジュールを見つけていなかったら、Google Gmail 用のモジュールに取り組もうとすることはなかったでしょう。
重要: このモジュールには、https://oauth2-client.thephpleague.com/providers/league/ で入手可能な Google リーグ/oauth2-google モジュールが必要です。ベンダー ディレクトリにインストールする必要があります。
このモジュールを使用する前に、Google でクライアント ID とクライアント シークレットを設定する必要があります。 2024 年 4 月時点でこれを行う方法と、このモジュールを構成する方法は次のとおりです。
Google Workspace アカウントにログインします。
https://console.cloud.google.com/ に移動します。
ページの左上の「Google Cloud」の隣に、プロジェクトのドロップダウンがあるはずです。それをクリックしてください。
[リソースの選択] ダイアログ ボックスにプロジェクトがリストされていない場合は、プロジェクトを作成し、それを現在のプロジェクトとして選択します。
ページの中央にある大きなボタン「API とサービス」をクリックします。
ページの左側に表示されるメニューで「認証情報」をクリックします。
[認証情報の作成] をクリックし、[OAuth クライアント ID] を選択します。
アプリケーションの種類として「Web アプリケーション」を選択します。
資格情報に名前を付け、クライアント ID とクライアント シークレットをメモします。これらの値を以下の (11) に入力する必要があります。
このモジュールをインストールすると、[構成] -> [システム] -> [PHPMailer Gmail OAuth2] (/admin/config/system/phpmailer-gmail-oauth2) に移動して、サイトの「承認されたリダイレクト URI」を見つけることができます。そのページを別のブラウザ ウィンドウで開くと、ページの上部近くに Google が必要とするリダイレクト URI が表示されます。 URI をコピーし、Google ページの [承認されたリダイレクト URI] ボックスに入力します。保存を押します。
Drupal ページに戻り、Google メール アドレス、クライアント ID、クライアント シークレットを入力し、[設定を保存] ボタンを押します。
Google 認証情報を保存すると、[リフレッシュ トークンを取得] ボタンが表示されます。そのボタンを押してサイトから Google にリダイレクトし、Google の指示に従います。
完了すると、Google はリフレッシュ トークンを発行し、先ほど終了した Drupal ページにリダイレクトします。すべてがうまくいけば、リフレッシュ トークンが得られ、電子メールを送信する準備が整います。
[リフレッシュ トークンの取得] ボタンを押したときに Google へのリダイレクトで問題が発生した場合は、settings.php ファイルに次の内容を追加する必要がある場合があります。
$ settings [ ' trusted_host_patterns ' ] = [ ' ^accounts.google.com$ ' ];
If you have other trusted_host_patterns, add '^accounts.google.com$' to the array.
その他のいくつかの設定項目:
[メール] モジュールに移動して、メール フォーマッタおよび送信者として「PHPMailer SMTP」を選択することを忘れないでください (/admin/config/system/mailsystem)。
Commerce 2 など、メールを送信する他のモジュールがある場合は、上記 (1) の同じページの下部にモジュールを追加する必要がある場合があります。
PHPMailer の SMTP トランスポート設定ページで、SMTP 認証方法として「Gmail OAuth2」を選択します (/admin/config/system/phpmailer-smtp)。 SMTP ポートを 587 に設定し、安全なプロトコルとして TLS を選択します。
PHPMailer の SMTP トランスポート設定ページの「テスト構成」サービスを使用して、テスト電子メールを送信して新しい構成が機能していることを確認できます。