【问题标题】:AWS SES - SMTP vs SES clientAWS SES - SMTP 与 SES 客户端
【发布时间】:2021-06-24 20:51:40
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    由于它是一个 AWS API,您需要提供凭据才能使用它。

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


    Amazon SES SMTP 终端节点要求所有连接都使用传输层安全性 (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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 作为新的贡献者,请尝试用支持代码sn-ps编写更详细的答案。
      猜你喜欢
      • 1970-01-01
      • 2013-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-20
      • 1970-01-01
      • 1970-01-01
      • 2022-12-04
      相关资源
      最近更新 更多