如何使用PHP和gmail API从我的个人gmail帐户发送电子邮件?

如何使用PHP和gmail API从我的个人gmail帐户发送电子邮件?,php,google-oauth,gmail-api,Php,Google Oauth,Gmail Api,我想使用Gmail API和PHP从我的个人电子邮件帐户以编程方式发送电子邮件。提出这个问题的原因是: 我不能使用SMPT,因为我使用的是A2托管,它禁止共享托管计划连接到远程SMPT服务器 看来唯一的解决办法就是使用Gmail API。我可以看到许多类似的教程。但是,它们大多不用于使用个人电子邮件帐户(即,这些方法中的大多数要求用户授权并代表用户发送电子邮件)。我的情况不同:我只想用我的个人gmail账户发送电子邮件 到目前为止,我刚刚找到了一个关于这个主题的相关教程。但似乎我必须为这种方法建

我想使用Gmail API和PHP从我的个人电子邮件帐户以编程方式发送电子邮件。提出这个问题的原因是:

我不能使用SMPT,因为我使用的是A2托管,它禁止共享托管计划连接到远程SMPT服务器

看来唯一的解决办法就是使用Gmail API。我可以看到许多类似的教程。但是,它们大多不用于使用个人电子邮件帐户(即,这些方法中的大多数要求用户授权并代表用户发送电子邮件)。我的情况不同:我只想用我的个人gmail账户发送电子邮件

到目前为止,我刚刚找到了一个关于这个主题的相关教程。但似乎我必须为这种方法建立一个G-Suite账户,这意味着我要承担额外的成本


有没有办法让服务帐户使用普通的gmail用户帐户。如果不是,我如何使用gmail api而不必一直登录。

你需要记住gmail帐户是私人用户数据。为了使用Gmail API发送电子邮件,您必须获得该帐户所有者的许可,才能从该帐户发送电子邮件

为此,我们使用Oauth2。一旦将刷新令牌存储到某个地方,您将需要对应用程序进行身份验证,然后您将能够在以后使用刷新令牌来获取新的访问令牌以使用它。使用普通用户gmail帐户无法解决这一问题

我这里有一些代码显示了如何使用刷新令牌

服务账户


服务帐户用于服务器到服务器的交互,它们是预先批准的。不幸的是,服务帐户只能与Gsuite-gmail帐户一起使用,而不是普通用户的gmail帐户

请看@pinoyyid谢谢,我已经在上面的链接上阅读了你的答案。你有PHP中的示例代码吗?你只需要一个rest调用来使用刷新令牌获取访问令牌,然后一个rest调用来提交你的电子邮件。谢谢DalmTo。我不太清楚。我不需要我的应用程序重定向到撰写电子邮件的页面,因为我知道我的电子邮件内容(包括收件人电子邮件地址、主题、内容、附件)。我还必须指定重定向URI吗?如果是这样的话,会是什么样的情况(或者在未来我该怎么做)?我正在努力理解这个页面上的示例代码,似乎在用户验证后,它会重定向到(但我不知道这个链接的作用)。非常感谢!
$client->refreshToken($_SESSION['refresh_token']);
$client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
$client->setAccessToken($client->getAccessToken());