我在Google App Engine标准环境中运行应用。我们需要发送大量电子邮件,看起来App Engine现在允许我们使用JavaMail使用SMTP发送电子邮件 - 连接到smtp.gmail.com或smtp.sendgrid.net。
我想知道这是否适用于App Engine中的Mail API限制/配额。我猜不应该这样,因为电子邮件实际上是由相应的SMTP服务器发送的,而且它只是来自App Engine的出站流量。这是对的吗?
答案 0 :(得分:0)
注意:我不是Java用户,答案仅基于文档。
事实上,使用第三方合作伙伴邮件服务是Google推荐发送大量电子邮件的建议。来自Quotas and limits:
每个邮件服务请求都会计入邮件API调用配额。 您还可以发送邮件数量的配额 您可以发送的管理员消息数,以及数据量和 您可以发送的附件。有关详细信息,请参阅Mail quotas。
[...]
JavaMail确实可以使用这些第三方SMTP服务器。来自Sending email messages:
要发送电子邮件,请使用App附带的JavaMail类 引擎SDK。
创建JavaMail会话时,如果不提供任何SMTP 服务器配置,App Engine使用Mail服务进行发送 消息。或者,添加支持的SMTP配置 第三方邮件提供商,例如Mailgun,Mailjet或 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在那里,它意味着使用是零)。您也可以直接按照推荐的第三方提供商的具体说明进行操作,并且几乎完全避免这个问题:)