Jenkins SMTP 连接被拒绝。我错过了什么?

问题描述 投票:0回答:6

我在 Windows 7 机器上安装了 Jenkins 版本 1.524,我正在尝试配置电子邮件,但“测试配置”报告错误。 Jenkins 在我自己的域帐户下作为服务运行。

我的设置如下:

SMTP server: smtp.corpdomain.com
Default user email suffix: @corpdomain.com
Not using authentication
Not using SSL
SMTP port: 25
Reply-To Address: [email protected]
Charset: UTF-8

当我测试配置时,通常会遇到以下异常:

javax.mail.MessagingException: Could not connect to SMTP host: smtp.amazon.com, port: 25;
  nested exception is:
    java.net.ConnectException: Connection timed out: connect

然而,每隔一段时间我就会收到以下信息:

com.sun.mail.smtp.SMTPSendFailedException: 553 5.1.8 <nobody@nowhere>... Domain of sender address nobody@nowhere does not exist
;
  nested exception is:
    com.sun.mail.smtp.SMTPSenderFailedException: 553 5.1.8 <nobody@nowhere>... Domain of sender address nobody@nowhere does not exist

但是,我可以通过 python 脚本和 java(使用 javax.mail)从命令行无错误地发送邮件,无需身份验证,并且我可以 telnet 到端口 25 上的 SMTP 服务器,所以我不需要看看这怎么可能是防火墙问题。

另一个可能相关的说明:当我尝试通过 Jenkins Web 界面安装插件时,我收到 URL“http://updates.jenkins-ci.org/update-center”的 403 响应。 json?uctest”。 但是,我可以从同一台计算机上的浏览器连接到该 URL。

这可能是 Tomcat 配置问题吗? 我对 Tomcat 不熟悉,所以我不知道从哪里开始寻找。 也许我错过了詹金斯配置? 还有其他想法吗?

提前致谢!

email jenkins smtp
6个回答
20
投票

FWIW nobody@nowhere 地址是 Jenkins 附带的系统管理员电子邮件地址的默认地址(发送电子邮件时用作发件人地址)

您可以在

更改它

管理 Jenkins > 配置系统 > Jenkins 位置


5
投票

首先,使用端口465

其次,在 AWS SES 中验证您的电子邮件,并从此处更改您的默认发送电子邮件: Jenkins -> 配置系统 -> Jenkins 位置 -> 系统管理员电子邮件地址


1
投票

在我看来,您的防火墙仍然阻止 Jenkins 的服务访问这些端口 -
特别是当连接超时时,这是此类情况的典型情况。

建议您尝试完全禁用防火墙,看看是否有变化。

干杯


1
投票

要检查 Jenkins 的连接问题,我会转到 Script Console(位于 Manage Jenkins -> Script Console),然后尝试连接到您要测试的端口(在您的情况下为 25),使用 Groovy 脚本,例如:

s = new Socket()
s.setSoTimeout(200)
s.connect(new InetSocketAddress("smtp.corpdomain.com", 25), 200)
s.close()

如果您没有收到任何类型的

IOError
,则连接没有问题。

注意:我可以简单地使用

new Socket("smtp.corpdomain.com", 25)
,但如果防火墙忽略您的尝试,它将永远尝试连接。

对于您最终收到的

SMTPSendFailedException
,正如@paul-henry提到的:

nobody@nowhere 地址是 Jenkins 附带的系统管理员电子邮件地址的默认地址(发送电子邮件时用作发件人地址) 你可以更改它 管理 Jenkins > 配置系统 > Jenkins 位置

资源:


0
投票

将端口更新为

587
以进行 SES 电子邮件通信,并将默认电子邮件表单
nobody@nowhere
更改为您的自定义 SES 上经过验证的电子邮件 对我有用。


-1
投票

感谢您提交编辑。只有您才可以看到它,直到得到可信社区成员的批准 首先,使用端口 465 其次,在 AWS SES 中验证您的电子邮件,然后从此处更改默认发送电子邮件:Jenkins -> 配置系统 -> Jenkins 位置 -> 系统管理员电子邮件地址

谢谢。它对我有帮助!

我的问题是“550-验证失败”

© www.soinside.com 2019 - 2024. All rights reserved.