【发布时间】:2017-03-08 11:44:38
【问题描述】:
在 Java 世界中
想知道是否有人有关于通过 gmail api 发送电子邮件与通过 java 邮件服务配置的 gmail smtp 服务配置进行比较的信息。
两者的优缺点
群发邮件可以一个连接触发 5 封单独的邮件吗?
【问题讨论】:
标签: google-api gmail gmail-api
在 Java 世界中
想知道是否有人有关于通过 gmail api 发送电子邮件与通过 java 邮件服务配置的 gmail smtp 服务配置进行比较的信息。
两者的优缺点
群发邮件可以一个连接触发 5 封单独的邮件吗?
【问题讨论】:
标签: google-api gmail gmail-api
使用 SMTP / IMAP 与 Gmail API 的主要区别。 IMO 将是您登录的方式。 SMTP 和 IMAP 允许您使用客户端登录(登录名和密码)进行身份验证,而 Gmail API 将要求您使用开放式身份验证 (Oauth2)。
现在有什么缺点吗?直到大约六个月前,如果用户更改密码,您的 SMTP 解决方案将不再有效,而您的 Oauth 解决方案将不再有效。然而,谷歌最近做了一个改变,如果用户在那里更改密码并且您使用邮件范围进行身份验证,那么所有刷新令牌都将过期。因此,现在如果用户更改他们的密码,则在用户更新应用程序中的密码之前,任何解决方案都不会起作用。
让我们谈谈作用域
当您使用 Oauth2 进行身份验证时,您必须请求您请求的访问范围。有很多电子邮件范围,您可以在here 中找到它们。让我们看两个。
https://www.googleapis.com/auth/gmail.readonly 读取所有资源及其元数据 - 无写入操作。
https://www.googleapis.com/auth/gmail.compose 创建、读取、更新和删除草稿。发送消息和草稿。
现在用户倾向于喜欢那里的隐私,并且通常不喜欢授予应用程序不需要的权限。如果您的应用程序的目的只是显示用户的电子邮件,那么您就不需要写权限了,对吗?因此,如果您请求写入权限但不需要它,一些用户会拒绝运行您的应用程序。
因此,将 Gmail API 与 Oauth 结合使用将允许您仅请求所需的访问范围。
现在 SMTP 和 IMAP 直接与邮件服务器通信,实际上无法设置您被授予的访问量。您拥有对该帐户的完全访问权限。
库
我不是 Java 开发人员,我实际上是 .net 开发人员。话虽如此,我认为您可能需要考虑可用的库以及它们的易用性。官方的 Google Java 客户端库可能与 Google .Net 客户端库非常相似,并且它可能经过很好的测试,可与 Gmail 和稳定版一起使用。可能还有很多关于如何使用它的教程。
现在您必须找到一个 SMTP 或 IMAP 库,并弄清楚它如何与 GMail 邮件服务器一起工作。然后你必须看看你是否也能找到它的教程。
批处理
大多数 Google API 都支持batching endpoint。重要提示:在测试时使用虚拟电子邮件帐户,如果您被禁止,您不想锁定您的个人 gmail 帐户。
我确信 SMTP 服务器以某种方式支持批处理。
配额
配额是您每天可以针对 API 发出的请求数。
就 SMTP 而言,我不知道有任何配额。
注意:
您可以将 OAuth 与 SMTP 服务器一起使用,上面的文档是 here 我自己还没有时间玩它,但它看起来很有趣。所以我不能评论它的价值。
【讨论】: