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

时间:2015-06-09 01:27:22

标签: email amazon-web-services smtp javamail amazon-ses

我是亚马逊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
  3. 每种方法的优点和缺点是什么?它们似乎可以互换,但我想听听那些有过SES经验的人的意见。

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

4 个答案:

答案 0 :(得分:5)

SES API将您与AWS,SMTP界面联系起来......以及它的SMTP。

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

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

如果您从头开始并且没有预见到需要离开AWS,那么您应该使用SES API。

答案 1 :(得分:4)

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

我发布了一个小项目https://github.com/loopingz/aws-smtp-relay 要从localhost SMTP中继到SES API,这样就可以将只处理SMTP的旧应用程序连接到更正常的SES API

答案 2 :(得分:2)

  

他们似乎可以互换

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

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

您至少需要保留SES返回的消息ID,并配置退回,投放和投诉通知,以便您获得反馈......这对任何一个界面都有效。

答案 3 :(得分:2)

Amazon's documentation on improving throughput开始,API的一个优点是可以选择使用持久HTTP连接来提高吞吐量。这不适用于SMTP选项。

除此之外,我还未能找到API和SMTP之间的任何其他主要差异。