如何使用 Gmail REST 发送电子邮件 API
How to send emails with Gmail REST API
我需要通过简单的 REST 调用从我的 backend-server 电子邮件地址向系统中注册的电子邮件地址发送电子邮件。
但是有问题,多多包涵
到目前为止我看到的很多文档似乎都假设我想访问客户端的 gmail 数据,但我没有,我只使用客户端的地址作为目的地。
我见过的很多示例都涉及视觉提示以授权访问 api。
但是为什么?
他们假设我将代表客户从移动设备拨打 api 电话,这需要视觉提示以征得同意。但是 none 适用于我的用例。
事实是,永远只有一个发件人,“我”(为后端服务器指定的公司电子邮件)。
我应该能够在 google 控制台上创建一个秘密 api_key,并在我的请求中发送它 headers(就像该死的 FIREBASE 那样),或者使用那个密钥来生成一个令牌,然后我将其发送到 api 端点(就像 Paypal 一样)。
我希望能够做类似的事情:
POST https://gmail.googleapis.com/upload/gmail/v1/users/{userId}/messages/send
Authorization: key=<key_created_on_google_console_or_token_obtained_using_said_key>
{
message stuff...
}
google 上的 api 参考说我需要使用 OAuth 凭据创建授权,然后我应该使用它来创建一个短期令牌,该令牌作为
"Authorization: Bearer <TOKEN>"
在我的下一个 api 电话中,直到它过期。但是...
在控制台中,创建一个新的OAuth2.0 客户端ID,说我需要创建一个应用程序。但是我已经有一个项目和一个 api_key(具有 gmail api 的权限)。那个说的应用程序将不得不被送去审查!。怎么回事?.
所以..
如何使用 REST 调用从我的 own-controlled 电子邮件地址发送电子邮件。
都是服务器端,不需要访问任何用户数据(甚至不是我自己的),我已经控制了发件人地址,我已经在 google 控制台上创建了一个项目,我已经创建了一个 api_key.
OAuth 似乎认为我在做一些我没有做的事情,所以我错过了什么?
谢谢。
不记名令牌是您在授权您的应用访问您的 Gmail 帐户后获得的 OAuth2 访问令牌。它专为第三方授权而设计(就像您的用户允许您的应用程序访问他们的 Gmail),这就是为什么当您访问自己的帐户时它看起来很复杂。
原来我尝试使用错误的工具来解决这个问题。
在寻找替代方案后,我发现了 MailGun 和 SendGrid。
试过 SendGrid,它像手套一样合身。喜欢。
我使用 Gmail+PHPMailer 来解决这个问题,并认为新的 api 旨在取代它,但事实证明它不是。
Alexey 在他的回答中指出了预期用途。实际上,我最终可能会集成新的 Gmail api 更符合它在我的客户移动设备上的预期用途。
都是我的误会
感谢您的宝贵时间。
我需要通过简单的 REST 调用从我的 backend-server 电子邮件地址向系统中注册的电子邮件地址发送电子邮件。
但是有问题,多多包涵
到目前为止我看到的很多文档似乎都假设我想访问客户端的 gmail 数据,但我没有,我只使用客户端的地址作为目的地。
我见过的很多示例都涉及视觉提示以授权访问 api。
但是为什么?
他们假设我将代表客户从移动设备拨打 api 电话,这需要视觉提示以征得同意。但是 none 适用于我的用例。
事实是,永远只有一个发件人,“我”(为后端服务器指定的公司电子邮件)。
我应该能够在 google 控制台上创建一个秘密 api_key,并在我的请求中发送它 headers(就像该死的 FIREBASE 那样),或者使用那个密钥来生成一个令牌,然后我将其发送到 api 端点(就像 Paypal 一样)。
我希望能够做类似的事情:
POST https://gmail.googleapis.com/upload/gmail/v1/users/{userId}/messages/send
Authorization: key=<key_created_on_google_console_or_token_obtained_using_said_key>
{
message stuff...
}
google 上的 api 参考说我需要使用 OAuth 凭据创建授权,然后我应该使用它来创建一个短期令牌,该令牌作为
"Authorization: Bearer <TOKEN>"
在我的下一个 api 电话中,直到它过期。但是...
在控制台中,创建一个新的OAuth2.0 客户端ID,说我需要创建一个应用程序。但是我已经有一个项目和一个 api_key(具有 gmail api 的权限)。那个说的应用程序将不得不被送去审查!。怎么回事?.
所以..
如何使用 REST 调用从我的 own-controlled 电子邮件地址发送电子邮件。
都是服务器端,不需要访问任何用户数据(甚至不是我自己的),我已经控制了发件人地址,我已经在 google 控制台上创建了一个项目,我已经创建了一个 api_key.
OAuth 似乎认为我在做一些我没有做的事情,所以我错过了什么?
谢谢。
不记名令牌是您在授权您的应用访问您的 Gmail 帐户后获得的 OAuth2 访问令牌。它专为第三方授权而设计(就像您的用户允许您的应用程序访问他们的 Gmail),这就是为什么当您访问自己的帐户时它看起来很复杂。
原来我尝试使用错误的工具来解决这个问题。 在寻找替代方案后,我发现了 MailGun 和 SendGrid。 试过 SendGrid,它像手套一样合身。喜欢。
我使用 Gmail+PHPMailer 来解决这个问题,并认为新的 api 旨在取代它,但事实证明它不是。
Alexey 在他的回答中指出了预期用途。实际上,我最终可能会集成新的 Gmail api 更符合它在我的客户移动设备上的预期用途。
都是我的误会
感谢您的宝贵时间。