如何使用 api 通过应用程序发送电子邮件
Posted
技术标签:
【中文标题】如何使用 api 通过应用程序发送电子邮件【英文标题】:How can I send email through app using api 【发布时间】:2020-08-06 08:29:36 【问题描述】:我想通过我的应用触发邮件。 到目前为止我尝试了什么?
-
使用类似于this的Gmail api。但似乎在API控制台页面上通过用户帐户撰写邮件(GMAIL_COMPOSE)等范围受到Google的限制。
JavaMail api- 尝试使用令牌来实现,但 here 我得到了一些阻止程序(再次查看上述限制)。
使用电子邮件服务提供商,例如:SendGrid- 我的应用是免费的,没有广告。如果我有 50000 多个用户,并且该应用每天触发 2 封邮件可能会限制此功能并且看起来收费很高,我不确定任何提供商都可以做到这一点。
那么,任何人都可以阐明我如何实现这一点或解决方案的任何一点吗?
【问题讨论】:
看看 Twilio twilio.com 【参考方案1】:您可以在线使用free email sender tool,这本身就很棒,我在网上发现了这个工具,它可以帮助发送电子邮件而无需登录。只需访问该工具网站或使用 API 即可免费发送无限量的电子邮件。免费电子邮件发件人工具最适合发送批量电子邮件。我在使用这个工具方面有很好的体验。
首先访问网站https://freemailsender.com 然后点击Let's Go 现在您将看到该工具,您可以免费使用它【讨论】:
【参考方案2】:考虑移动邮件功能服务器端。例如,您可以在使用 Nodemailer 模块发送电子邮件的 Node.js 服务器上编写一个函数。
【讨论】:
【参考方案3】:Gmail API 是免费使用的,您当然可以从您的应用程序发送电子邮件。
请注意,如果您的应用代表您的用户发送电子邮件,则需要获得相应用户的同意。
否则,如果是您的帐户(或您的应用程序),您可以使用 API 客户端构建授权服务并发送任意数量的邮件。
您仍然需要创建一个 GCP 项目,启用 Gmail API,创建凭据,然后使用这些凭据访问 API 并使用授权客户端进行调用。
还可以考虑存储返回的刷新令牌,以便在令牌过期时获取有效令牌。
参考文献
Gmail API overview Gmail API Java quickstart OAuth 2.0 for Mobile & Desktop Apps注意事项:
Google 有一个流程来验证应用是否安全,然后再删除“此应用未经验证”警告。 该过程是免费的,大多数验证请求会在 24 到 72 小时内收到回复。
OAuth Client Verification
【讨论】:
感谢您的回答,我已经检查过了,但我再次看到您提到的两种方法都需要受限/敏感的scope(gmail.compose 或 gmail.send)来发送邮件。据我所知,谷歌很少允许这样做或花费无限的时间。如果我有任何错误,请纠正我。 您好,我看到了您的更新,但是是的,看起来他们会为受限制的权限收费,因为他们发送它是为了进行额外的安全评估。即使我发送我的应用程序/项目进行验证以试一试(不管他们等待响应的时间长短),它也需要一个经过验证的域。而且我的应用程序只是一个独立的 android 应用程序,我没有任何网站或 URL 可提供。对此有什么建议:-)?谢谢!【参考方案4】:使用电子邮件服务提供商,例如:SendGrid- 我的应用是免费的,没有广告。如果我有 50000 多个用户并且应用程序每天触发 2 封邮件可能会限制此功能并且看起来收费很高,我不确定任何提供商都可以做到这一点。
我认为,一旦达到 5 万用户,您就可以切换到允许更多电子邮件的更好服务。在那一天到来之前,我认为 Sendgrid 还不错。
我实际上已经使用 Sendgrid 的最新 API 为 Android 构建了一个 Sendgrid 库。
https://github.com/Jakebreen/android-sendgrid
implementation 'uk.co.jakebreen:android-sendgrid:1.0.1'
我维护它,所以如果您有任何问题,请在 github 页面上记录问题。
【讨论】:
以上是关于如何使用 api 通过应用程序发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Android 中的图像上添加文本并使用 JavaMail API 通过电子邮件发送
如何通过 gmail-api for python 发送 HTML 格式的电子邮件
如何使用 python 使用 mailchimp 发送 html 邮件
如何获取使用 Mandrill API 发送的最后一封电子邮件