亚马逊简单电子邮件服务(SES) - 我应该使用SMTP接口还是SES API?

Ale*_*exG 16 email smtp jakarta-mail amazon-web-services amazon-ses

我是Amazon SES的新手,我发现有两种方法可以通过编程方式发送电子邮件:

  1. SES API(http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-api.html)
  2. SES SMTP接口(http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-using-smtp-java.html)

每种方法的优缺点是什么?它们似乎可以互换,但我想听听那些有过SES经验的人.

根据我自己的要求,我将向用户发送交易电子邮件(即收据,帐户确认等)和通知电子邮件(即"您有新消息",状态更改等)我的网络和移动应用程序.如果可能的话,我想保留所有这些外发电子邮件的历史记录.

Mir*_*cea 8

SES API将您与AWS,SMTP接口联系起来......它就是SMTP.

您是否预见到将来需要离开AWS?您的应用程序是否已将SMTP发送到其他电子邮件服

根据您当前的应用程序,使用SMTP可能更容易.

如果您从头开始并且预计不需要离开AWS,那么您应该使用SES API.


Spo*_*boy 7

亚马逊关于提高吞吐量的文档来看,API 的一个优势是可以选择使用持久的 HTTP 连接来提高吞吐量。这对 SMTP 选项不可用。

除此之外,我还没有发现 API 和 SMTP 之间的任何其他主要区别。


loo*_*ngz 7

通过使用 SES API,您正在使用 SDK,因此您可以在实例上使用角色:您不必处理和存储配置的密码,因此您不会经历更改密码的痛苦。

我发布了一个小项目https://github.com/loopingz/aws-smtp-relay 来从本地主机 SMTP 中继到 SES API,这样您就可以将仅处理 SMTP 的遗留应用程序连接到更正常的 SES API


Mic*_*bot 4

对我来说它们似乎可以互换

这是一个公平的分析。我对新代码使用 API,对已经知道如何使用 SMTP 的现有代码使用 SMTP。无论如何,我还没有找到强有力的案例。

这两个界面都不会保留历史记录——您必须自己做这件事。我正在研究的一种与某些遗留代码一起使用的机制是 SMTP 代理,它捕获应用程序和 SES 之间的交互,使用 SES 消息 ID 作为 S3 密钥将整个事务保存到 S3,以便以后在需要时进行检索(仍然是工作正在进行中,还有更紧迫的项目要做)。

您至少需要保留 SES 返回的消息 ID,并配置退回邮件、送达和投诉通知,以便您获得反馈……这对于任一界面也同样有效。