未收到 Jenkins 电子邮件扩展插件发送的电子邮件?

时间:2021-03-23 13:16:04

标签: jenkins jenkins-pipeline jenkins-plugins

pipeline 
{
  agent any
  stages
  {
    stage ('Start')
    {
      steps
      {
        echo 'Hello'
      }
    }
  }
  post
  {
    success
    {
      emailext (
          to: 'me@domain.zzz',
          subject: 'Test subject',
          body: 'Test body'
        )
    }
  }
}

这个简单的 Jenkins 管道似乎成功发送电子邮件(输出显示:Sending email to: me@domain.zzz),但收件箱中从未收到电子邮件。

Jenkins 日志中没有任何内容。
我可以从 Manage Jenkins -> Configure System -> E-mail Notification 成功发送测试邮件。
我在这里使用 Email Extension plugin。有没有办法从电子邮件扩展插件发送测试邮件?有没有其他方法可以找出未发送/接收电子邮件的原因?

1 个答案:

答案 0 :(得分:1)

首先:在 Manage Jenkins -> Configure System -> E-mail Notification -> Advanced 下检查 Enable Debug Mode。这会在作业运行后提供大量信息!

问题是电子邮件扩展插件没有启用 TLS,因为只有一个 SSL 复选框可用。使用经典 Manage Jenkins -> Configure System -> E-mail Notification 时 - 有一个 TLS 复选框,但这里没有。

The solution 在 Debian Linux 上启用 startTLS:登录 Jenkins 并编辑 /etc/default/jenkins。编辑 JAVA_ARGS 并添加以下内容:"-Dmail.smtp.starttls.enable=true"。最后,这行对我来说是这样的: JAVA_ARGS="-Djava.awt.headless=true -Dmail.smtp.starttls.enable=true"。重启 Jenkins:sudo service jenkins restart

完成此操作后,发送电子邮件即可。