【问题标题】:How can I use SMTP Amazon SES with Delphi?如何将 SMTP Amazon SES 与 Delphi 一起使用?
【发布时间】:2013-03-13 17:46:44
【问题描述】:

我有一个 Delphi 应用程序,它使用 Indy IdSMTP 对象向智能主机发送电子邮件。

我想使用带有 SMTP 接口的 Amazon SES 服务。根据http://docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-connect.html,我需要使用TLS连接。

我不确定应该为 IdSMTP 对象 UseTLS 属性使用哪个值,然后在 IOHandler 中指定什么值。

是否有在 Delphi 中使用 Amazon SES 的简单方法?目前我希望能够只发送文本电子邮件,但将来我可能需要发送 HTML 电子邮件。

【问题讨论】:

    标签: delphi smtp indy amazon-ses


    【解决方案1】:

    在连接到服务器之前,您需要将启用 SSL 的TIdIOHandler 组件(例如TIdSSLIOHandlerSocketOpenSSL)分配给TIdSMTP.IOHandler 属性,并将TIdSMTP.UseEHLO 属性设置为True。然后,您有两种选择来配置 TLS 设置:

    1. TIdSMTP.UseTLS 属性设置为utUseExplicitTLS,然后将TIdSMTP.Port 属性设置为25、587 或2587(SES 上的所有三个端口都支持utUseExplicitTLS)。

    2. TIdSMTP.UseTLS 属性设置为utUseImplicitTLS,然后将TIdSMTP.Port 属性设置为465 或2465(SES 上的两个端口都支持utUseImplicitTLS)。

    UseTLS 值之间的区别在于 utUseExplicitTLS 将连接到最初未加密的服务器,然后在需要时向服务器发送 SMTP STARTTLS 命令以启用加密,而 utUseImplicitTLS 将连接到服务器并在可以交换任何与 SMTP 相关的数据之前立即启用加密。

    亚马逊建议验证服务器的 TLS 证书以验证连接的完整性。您可以在TIdSSLIOHandlerSocketOpenSSL.SSLOptions.VerifyMode 属性中启用sslvrfPeersslvrfFailIfNoPeerCert 标志,然后根据需要使用TIdSSLIOHandlerSocketOpenSSL.OnVerifyPeer 事件来验证证书详细信息。

    【讨论】:

      猜你喜欢
      • 2012-02-23
      • 2022-11-11
      • 2012-09-30
      • 2012-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-05
      相关资源
      最近更新 更多