Jenkins:poll-mailbox-trigger-plugin和SMTP

时间:2017-05-24 03:44:45

标签: jenkins jenkins-plugins

我无法使用poll-mailbox-trigger插件基于电子邮件构建Jenkins

我在电子邮件通知中的设置如下

  • SMTP服务器:myExchangeServerHostName
  • 默认用户电子邮件后缀:@ companyName.com
  • 使用SMTP身份验证:True
  • 用户名:DOMAIN \ user
  • 密码:aboveUserPassword
  • 使用SSL:False
  • SMTP端口:587
  • 回复地址:
  • Charset:UTF-8

从这里,我可以成功地向自己发送测试邮件,然后收到它。

在我的构建中,轮询邮箱触发器设置如下

  • 主持人:myExchangeServerHostName
  • 用户名:DOMAIN \ user
  • 密码:aboveUserPassword
  • 高级电子邮件属性:
    • mail.imaps.port = 587
    • mail.imap.ssl.enable =真
    • mail.imap.starttls.enable =真
  • 时间表:H / 5 * * * *

测试此连接时,我得到了

  

连接邮箱...   错误:javax.mail.MessagingException:无法识别的SSL消息,明文连接?     嵌套异常是:   javax.net.ssl.SSLException:无法识别的SSL消息,明文连接?   在com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:665)

我试过了

  • mail.imap.ssl.enable = false
  • 使用电子邮件地址而不是域\用户
  • 添加mail.imaps.ssl.trust = *

上述情况似乎没有任何区别。

2 个答案:

答案 0 :(得分:0)

SMTP协议用于发送和中继邮件。使用此协议,无法从特定邮箱检索邮件。 IMAP和POP3协议可以检索邮件。因此,您必须获得对IMAP或POP3服务器的访问权限才能检索邮件。 jenkins的轮询邮箱触发器插件尝试通过IMAP存储连接到邮箱。如果邮件服务器在Exchange服务器中使用HTTPS协议,则可以使用Microsoft EWS托管api编写powershell实用程序,以检索邮件并将该实用程序插入jenkins。另外,Powershell脚本也可以包含在批处理脚本中,然后可以包含在jenkins中。

答案 1 :(得分:0)

问题可能与邮件服务器上的证书(自签名的,并且未被詹金斯和插件识别)有关,因此将证书注册到您的trustStore会有所帮助。

我找到了2种可行的解决方案:

  1. 按照Jenkins "unable to find valid certification path to requested target" error while importing Git repository

  2. 中的“ Highway of Life”说明添加邮件服务器的证书
  3. 将trustStoreType更改为Windows-Root,以便Jenkins使用与您的浏览器相同的证书源,在此处How to configure trustStore for javax.net.ssl.trustStore on windows?

  4. 中从“ Nux”进行回答。

注意:解决方案1),答案是相同的,但是从浏览器导出证书而不是使用“ openssl”,以某种方式它对我不起作用或我做错了。因此,您可以同时尝试。