AWS SES - SMTP 与 SES 客户端

AWS SES - SMTP vs SES client

在使用 AWS SES 时,我想我有两种发送邮件的选择。 Java 是我使用的编程语言:

  1. 使用 Amazon SES 客户端库
  2. 使用 SMTP 发送邮件(可能使用 Java 邮件 API)。

但我猜 Amazon SES 客户端库没有使用 SMTP - 我猜它使用 HTTPS 进行从我的机器到邮件服务器的通信。

或者它是建立在 Java SMTP 库之上的另一层以便于配置?

我问这个是因为当我使用上面的选项 #1 时无法配置 SMTP 端口等。

你能帮我理解其中的区别吗?提前致谢。

你是对的,你有两种发送电子邮件的选项。

选项 1 使用 SES API,可通过 HTTPS 使用。所以与SMTP协议无关。
您具有相同的功能,但您将使用 SES API.

而不是使用 SMTP 协议

因为它是 AWS API 您需要提供凭证才能使用它。

Java 示例:
https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-using-sdk-java.html


The Amazon SES SMTP endpoint requires that all connections be encrypted using Transport Layer Security (TLS).

关于选项2,必须使用TLS,所以每种类型的TLS选项都有自己的可用端口。

STARTTLS 的端口:25、587 或 2587
SMTPS 端口:465 或 2465

也必须使用身份验证。

因此您的 SMTP 客户端必须支持 TLS(STARTTLS 或 SMTPS)和身份验证。

文档:
https://docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-connect.html

Java 使用 STARTTLS 的示例:
https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-using-smtp-java.html

如果您 运行 在专用网络 w/o Internet GW 中,您需要 SMTP,因为 SES 没有 VPC 接口端点。有一个功能请求打开了 AWS 但没有 ETA