gmail api vs传统的smtp

时间:2017-03-08 11:44:38

标签: google-api gmail gmail-api

在Java世界中

想知道是否有人通过gmail api与通过java邮件服务配置的gmail smtp服务配置发送电子邮件的比较信息。

的优点/缺点

批量电子邮件可以通过一个连接触发5个单独的电子邮件吗?

1 个答案:

答案 0 :(得分:3)

使用SMTP / IMAP与Gmail API之间的主要区别。 IMO将是您登录的方式。 SMTP和IMAP允许您使用客户端登录(登录名和密码)进行身份验证,而Gmail API将要求您使用开放式身份验证(Oauth2)。

现在有任何缺点。好吧直到大约六个月前我会说是的,如果用户更改了他们的密码,你的SMTP解决方案将不再适用于你的Oauth解决方案。但是Google最近做了一项更改,如果用户更改密码并且您使用邮件范围进行身份验证,那么所有刷新令牌都将过期。因此,现在如果用户更改其密码,则在用户更新应用程序中的密码之前,解决方案都不会起作用。

让我们谈谈范围

使用Oauth2进行身份验证时,您必须请求您请求的访问范围。有很多电子邮件范围,你可以找到它们here。让我们看看两个。

  

https://www.googleapis.com/auth/gmail.readonly阅读所有资源及其元数据 - 无需写入操作   https://www.googleapis.com/auth/gmail.compose创建,阅读,更新和删除草稿。发送消息和草稿。

现在,用户倾向于喜欢隐私,并且通常不喜欢提供应用程序不需要的权限。如果你的应用程序的目的只是显示用户的电子邮件,那么你不需要写访问权限吗?因此,如果您请求写入权限并且不需要写入权限,则某些用户将拒绝运行您的应用程序。

因此,将Gmail API与Oauth配合使用,您只能申请所需的访问权限。

现在,SMTP和IMAP直接与邮件服务器通信,实际上无法设置您授予的访问权限。您拥有该帐户的完全访问权限。

<强>库

我不是Java dev我实际上是.net dev。话虽如此,我认为您可能想要考虑可用的库以及它们的使用方式。官方Google Java客户端库可能与Google .Net客户端库非常相似,并且可能已经过充分测试,可用于Gmail和稳定版。有很多关于如何使用它的教程。

现在,您将不得不找到一个SMTP或IMAP库,并找出它将如何与GMail邮件服务器一起使用。然后你必须看看你是否也能找到它的教程。

<强>配料

大多数Google API都支持batching endpoint。最重要的提示:当使用虚拟电子邮件帐户进行测试时,如果您将其禁用,则不希望锁定您的个人Gmail帐户。

我确信SMTP服务器支持某种方式的批处理。

<强>配额

配额是您每天可以针对API提出的请求数。

enter image description here

就SMTP而言,我不知道任何配额。

注意:

您可以将OAuth与SMTP服务器一起使用,其中的文档是here我自己没有时间玩它,但它看起来很有趣。所以我不能评论它的价值。