php - 如何使用 PHP 和 Gmail API 从我的个人 gmail 帐户发送电子邮件?
问题描述
我想使用 Gmail API 和 PHP 以编程方式从我的个人电子邮件帐户发送电子邮件。问这个问题的原因是:
我不能使用 SMPT,因为我正在使用 A2 Hosting,它禁止共享主机计划连接到远程 SMPT 服务器。
似乎唯一的解决方案是使用 Gmail API。我可以看到很多类似的教程。但是,它们大多不用于使用个人电子邮件帐户(即,这些方法大多数都要求用户授权并代表他们发送电子邮件)。我的情况不同:我只想使用我的个人 gmail 帐户发送电子邮件。
到目前为止,我刚刚找到了一个关于这个主题的相关教程http://sahmwebdesign.com/gmail-api-via-service-accounts/。但似乎我必须有一个 G-Suite 帐户才能使用这种方法,这对我来说意味着额外的费用。
无论如何让服务帐户与普通的gmail用户帐户一起工作。如果不是,我如何使用 gmail api 而不必一直登录。
解决方案
您需要记住,Gmail 帐户是私人用户数据。为了使用 Gmail API 发送电子邮件,您必须获得该帐户所有者的许可才能从该帐户以编程方式发送电子邮件。
为此,我们使用 Oauth2。将刷新令牌存储在某个地方后,您将需要对应用程序进行身份验证,然后您将能够在以后使用刷新令牌来获取新的访问令牌以使用它。使用普通用户 gmail 帐户无法解决此问题
我这里有一些代码显示如何使用刷新令牌Oauth2Authentication.php
$client->refreshToken($_SESSION['refresh_token']);
$client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
$client->setAccessToken($client->getAccessToken());
服务帐号
服务帐户旨在用于服务器到服务器的交互,它们是预先批准的。不幸的是,服务帐户仅适用于 Gsuite gmail 帐户,而不适用于普通用户 gmail 帐户。
推荐阅读
- python - Pandas - 删除列索引的标签
- c# - 在 Ado.net C# 中动态构建 Where 子句
- mysql - SQL - 总和每行中的前 N 个值
- javascript - 在 WooCommerce MyAccount 中显示自定义成功消息
- microsoft-graph-api - MS Graph 示例应用程序集成测试不起作用
- django - 在 Django 中向序列化程序添加另一个类
- javascript - 传单控制不提供准确的侧边栏
- java - Java 编译问题——不允许使用默认方法
- javascript - 标签中的href与Angular中的window.open
- psychopy - Presenting only a subset of conditions