该模块旨在成为与 PHPMailer SMTP 模块配合使用的插件,通过 OAuth2 向 Google Workspace Gmail 提供身份验证。它的灵感来自于 Ian McLean (imclean) 编写的 phpmailer_oauth2。如果我没有找到 Ian 的模块,我就不太可能尝试为 Google Gmail 开发一个模块。
重要提示:此模块需要 Google league/oauth2-google 模块,可从 https://oauth2-client.thephpleague.com/providers/league/ 获取。它应该安装在您的供应商目录中。
在使用此模块之前,需要在 Google 上设置 Client ID 和 Client Secret。以下是自 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 传输设置页面上,选择“Gmail OAuth2”作为 SMTP 身份验证方法 (/admin/config/system/phpmailer-smtp)。将 SMTP 端口设置为 587,并选择 TLS 作为安全协议。
您可以使用 PHPMailer SMTP 传输设置页面上的“测试配置”服务,通过发送测试电子邮件来验证新配置是否正常工作。