【问题标题】:Jenkins SMTP connection refused. What am I missing?Jenkins SMTP 连接被拒绝。我错过了什么?
【发布时间】:2020-04-21 05:23:46
【问题描述】:

我在 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: tools@corpdomain.com
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)从命令行发送邮件而没有错误,而无需身份验证,并且我能够远程登录到端口 25 上的 SMTP 服务器,所以我不'不知道它怎么可能是防火墙问题。

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

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

提前致谢!

【问题讨论】:

  • 您接受了正确的回应吗?

标签: email jenkins smtp


【解决方案1】:

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

你可以改变它

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

【讨论】:

  • 这就是为我解决问题的方法。需要定义 Jenkins 位置才能使测试连接正常工作(看起来像一个错误)。
【解决方案2】:

首先,使用端口 465

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

【讨论】:

    【解决方案3】:

    在我看来,您的防火墙仍然阻止 Jenkins 的服务访问这些端口 -
    尤其是连接超时,这在这种情况下很典型。

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

    干杯

    【讨论】:

      【解决方案4】:

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

      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 位置

      资源:

      【讨论】:

        【解决方案5】:

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

        谢谢。对我有帮助!

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-08-10
          • 2021-04-22
          • 2018-03-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-28
          相关资源
          最近更新 更多