我们在Jenkins中使用SMTP协议来发送邮件。在扩展电子邮件通知下,我们配置如下。
我们使用 SMTP 端口为 465,并且我们已选中 SSL 标记。
现在,根据以下错误,需要升级到 TLS 1.2 或更高版本。
发送至以下有效地址时出错:XXXXXXXXX.com XXXXXX.com SendFailedException 消息:554 访问被拒绝:Amazon SES 不再支持 TLS 1.0 和 TLS 1.1 连接。您必须更新客户端才能使用 TLS 版本 1.2 或更高版本。要了解更多信息并更新您的客户端,请参阅 https://go.aws/3AUlVSb。如需进一步帮助,请联系 AWS 支持
您能否告诉我们如何操作以及需要使用什么端口?我们的 SMTP 服务器已在 AWS SES 中配置。
我们尝试取消选中 SSL,但它仍然不起作用并期望收到邮件。
要解决 Jenkins 中的 SMTP 升级到 TLS 1.2 的问题,特别是在使用 AWS SES(简单电子邮件服务) 时,您需要确保 Jenkins 设置和底层 Java 环境支持 TLS 1.2。
[ Jenkins Server ] --> SMTP (TLS 1.2) --> [ AWS SES ]
Jenkins 本身依赖于底层 Java 版本的网络协议,包括 TLS。确保您运行的 Java 版本默认支持 TLS 1.2。 Java 8 及更高版本应该支持它。
为了让 Jenkins 使用 TLS 1.2,如果您使用的是较旧版本的 Java,则可能需要在 Java 参数中显式指定使用 TLS 1.2。您可以通过添加以下 JVM 选项来完成此操作:
-Dhttps.protocols=TLSv1.2
(如在此处看到)。或者(如这个答案):
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dhttps.protocols=TLSv1.2"
对于 AWS SES,使用 TLS 1.2 时,您仍然可以使用端口 465 通过 SSL/TLS 进行 SMTP。或者,您可以将端口 587 用于带有 STARTTLS 的 SMTP。两者都应与 TLS 1.2 兼容。
如果您使用端口 465,请确保选中“SSL”选项。如果您决定使用端口 587,则应配置 Jenkins 以明文方式启动连接,然后使用
STARTTLS
升级到 TLS。