版本信息
jenkins:2.235.4
email-ext:2.74
错误现象
上述版本中各项邮箱参数配置好了以后,邮件发送的debug模式提示如下内容:
Adding recipients from trigger recipient list
Successfully created MimeMessage
Sending email to: xxx@zzz.com
MessagingException message: failed to connect, no password specified?
Finished: FAILURE
尝试的途径
通过搜索资料发现有网友遇到类似问题,方案有:
- 系统设置中,Jenkins Location邮箱地址和Extended E-mail Notification中配置的账户名称不符;
- 项目配置中,Project From填写了内容;
- email-ext版本问题,需要回退到2.72;
解决方案
- 首先各项配置参数后,确定参数配置绝对没有问题,所以方案1、2无效;
- 尝试将版本回退到2.72,出现了新的问题:
Adding recipients from trigger recipient list
Setting In-Reply-To since last build was not successful
Successfully created MimeMessage
Sending email to: yangtaoliu@51carfi.com
Error sending to the following VALID addresses: xxx@zzz.com
SendFailedException message: 500 Error: bad syntax
再次查找相关资料,找到线索:确实是版本问题,但回退的版本有误。需要回退到2.69版本比较保险,2.70、2.71没有尝试过。
插件下载地址:email-ext-2.69
在国内的镜像源上查找相应版本,并通过文件方式安装:
最终问题得到解决!
Adding recipients from trigger recipient list
Setting In-Reply-To since last build was not successful
Successfully created MimeMessage
Sending email to: xxx@zzz.com
Finished: SUCCESS
据说,还有另外一个解决方案:使用Groovy脚本设置配置,详细信息如下:
链接地址:Configuring the Jenkins email-ext plugin with Groovy
import jenkins.model.Jenkins
def inst = Jenkins.getInstance()
def emailExt = instance.getDescriptor(
"hudson.plugins.emailext.ExtendedEmailPublisher")
emailExt.setSmtpAuth("username",
"password")
emailExt.setDefaultReplyTo("jenkins@example.com")
emailExt.setSmtpServer("smtp.example.com")
emailExt.setUseSsl(true)
emailExt.setSmtpPort("587")
emailExt.setCharset("utf-8")
emailExt.setDefaultRecipients("someone@example.com")
emailExt.save()