如何使用 Jenkins 和参数地址发送电子邮件?

How to send email with Jenkins and an parameter address?

我正在使用 Jenkins,我想在完成工作后发送一封电子邮件。我遇到的问题是我想将之前定义的用户名用于配置中的参数。我尝试使用 then ${username} 但我不工作。这是我得到的错误:

Sending e-mails to: ${username}@email.es
ERROR: Invalid Addresses
javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
com.sun.mail.smtp.SMTPAddressFailedException: 550 5.1.1 <${username}@email.es>... User unknown

at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1835)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1098)
at javax.mail.Transport.send0(Transport.java:195)
at javax.mail.Transport.send(Transport.java:124)
at hudson.tasks.MailSender.run(MailSender.java:126)
at hudson.tasks.MailSender.execute(MailSender.java:101)
at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.cleanUp(MavenModuleSetBuild.java:1064)
at hudson.model.Run.execute(Run.java:1764)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:531)
at hudson.model.ResourceController.execute(ResourceController.java:89)
at hudson.model.Executor.run(Executor.java:240)
Caused by: com.sun.mail.smtp.SMTPAddressFailedException: 550 5.1.1 <${username}@email.es>... User unknown

at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1686)
... 10 more

它没有取参数值。是否有任何插件或方法可以做到这一点?

感谢您的帮助。

而不是 ${username} - 使用 $username

例如:$用户名@$domain.com

这里username和domain是build的两个参数 (通过选择复选框定义-此构建已参数化)

为电子邮件通知配置 Jenkins 系统

为此:

"Jenkins Dashboard -> Manage Jenkins -> Configure System"

在页面底部-找到:电子邮件通知

然后提供电子邮件通知详细信息

我是这样配置的:

SMTP 服务器 : smtp.gmail.com

默认用户邮箱后缀:@gmail.com

select 复选框使用 smtp 身份验证

give: username (without @gmail.com) -eg: enter mike for mike@gmail.com

输入您的密码

Select 复选框使用 SSL

SMTP 端口:465

通过发送测试邮件来尝试您的电子邮件设置

如果你能发送成功。完成了

/* 在构建中 - 构建是参数化的 */

第一个参数

姓名 : 用户名 默认值:麦克

第二个参数

名称: 域名 默认值:gmail

//Post-构建操作-电子邮件通知 (只有安装了Mailer插件才能看到)

收件人:$用户名@$domain.com

这应该有效..

我'found'解决了。对于 Maven 项目,它不适用于 Build 属性中的简单电子邮件通知。我必须使用插件 'Ext-mail plugin' 来完成它。谢谢大家。