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

时间:2019-01-28 12:20:02

标签: php google-oauth gmail-api

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

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

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

到目前为止,我刚刚找到了一个有关该主题http://sahmwebdesign.com/gmail-api-via-service-accounts/的相关教程。但似乎我必须为此帐户拥有一个G-Suite帐户,这对我来说意味着额外的费用。

无论如何,是否有使用普通gmail用户帐户的服务帐户。如果没有,我怎么能使用gmail api而不必一直登录。

1 个答案:

答案 0 :(得分:0)

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

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

我这里有一些代码,展示了如何使用刷新令牌Oauth2Authentication.php

$client->refreshToken($_SESSION['refresh_token']);
$client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
$client->setAccessToken($client->getAccessToken()); 

服务帐户

服务帐户用于服务器到服务器的交互,它们是预先批准的。不幸的是,服务帐户仅适用于Gsuite Gmail帐户,不适用于普通用户的Gmail帐户。