使用JavaMail通过Gmail / Sendgrid SMTP发送的电子邮件是否计入Google App Engine中的邮件API限制?

时间:2017-11-28 16:49:49

标签: google-app-engine

我在Google App Engine标准环境中运行应用。我们需要发送大量电子邮件,看起来App Engine现在允许我们使用JavaMail使用SMTP发送电子邮件 - 连接到smtp.gmail.com或smtp.sendgrid.net。

我想知道这是否适用于App Engine中的Mail API限制/配额。我猜不应该这样,因为电子邮件实际上是由相应的SMTP服务器发送的,而且它只是来自App Engine的出站流量。这是对的吗?

1 个答案:

答案 0 :(得分:0)

注意:我不是Java用户,答案仅基于文档。

事实上,使用第三方合作伙伴邮件服务是Google推荐发送大量电子邮件的建议。来自Quotas and limits

  

每个邮件服务请求都会计入邮件API调用配额。   您还可以发送邮件数量的配额   您可以发送的管理员消息数,以及数据量和   您可以发送的附件。有关详细信息,请参阅Mail quotas

     

[...]

     

如果您需要发送更多邮件,那么配额允许,您可以使用   第三方邮件提供商,例如SendGridMailgun

JavaMail确实可以使用这些第三方SMTP服务器。来自Sending email messages

  

要发送电子邮件,请使用App附带的JavaMail类   引擎SDK。

     

创建JavaMail会话时,如果不提供任何SMTP   服务器配置,App Engine使用Mail服务进行发送   消息。或者,添加支持的SMTP配置   第三方邮件提供商,例如MailgunMailjet或   SendGrid

这最后一个引用出现(取决于你如何解释它,我猜)支持你的假设,即当指定SMTP服务器时,不会使用邮件服务,因此这些调用不会被'根据Mail API Calls配额计算。

此引号中引用的每个第三方邮件集成文档页面都没有(或者至少没有直接)使用JavaMail,而是需要特定的库/模块。哪个可能与绕过GAE Mail Api配额限制有某种关系。例如,来自Sending Email with SendGrid

  

发送电子邮件

     

开始使用SendGrid的Java library很容易   从您的App Engine应用程序发送电子邮件。

     

完成prerequisites后,请确保您在本地计算机上set up for Java。你以前最不需要的东西   编写代码是将Sendgrid.java复制到catalina start目录   你的应用。您将导入此类,以便您可以创建SendGrid   实例并使用简单的命令发送邮件。

因此,为了获得确定性,我的建议是实际考虑您的假设:在指定您的SMTP服务器信息时使用JavaMail发送一些电子邮件,然后在开发人员控制台Quotas页面中检查您的实际使用情况以进行匹配增加。注意:

  • 为传播延迟提供了充足的空间 - 的使用量可能不能立即更新
  • 如果您还没有看到“使用情况”表格中的src部分,请在页面底部查看Mail按钮/链接(但是,如果它是' s在那里,它意味着使用是零)。

您也可以直接按照推荐的第三方提供商的具体说明进行操作,并且几乎完全避免这个问题:)