【问题标题】:How to send email with Jenkins and an parameter address?如何使用 Jenkins 和参数地址发送电子邮件?
【发布时间】:2015-02-16 15:44:02
【问题描述】:

我正在使用 Jenkins,我想在完成工作后发送一封电子邮件。我遇到的问题是我想将之前定义的用户名用于配置中的参数。我尝试使用 ${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

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

感谢您的帮助。

【问题讨论】:

  • 您的参数是否在配置部分“此构建已参数化”下定义?它是什么类型的?
  • 我把它用西班牙语写成 'cadena'。我认为是字符串参数。是的,它正在检查“此构建已参数化”。我有另一个字符串参数来使用 SVN url,它工作正常。问题出在项目属性中的电子邮件 --> 电子邮件通知。
  • 奇怪,我试过了,它对我有用。你的 Jenkins 是什么版本的?
  • 我的版本是 Jenkins 版本。 1.599。该参数来自另一个使用 groovy 脚本的任务调用。我有两个参数,一个是我用来编译里面代码的SVN参数,一个是我用来发邮件的username参数,但是控制台给我报错。
  • 好的,我尝试在第一份工作中这样做,它可以工作,但是当我将工作参数传播到下一个要运行的工作时,它就不起作用了。

标签: email plugins jenkins


【解决方案1】:

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

例如:$username@$domain.com

这里,用户名和域是构建的两个参数 (通过选择复选框定义-此构建是参数化的)

【讨论】:

  • 继续出现同样的错误。我在参数“author”中输入了一个值,然后在电子邮件的输入字段中:“$author@prueba.es”并显示错误。
  • 我更新了日志错误。电子邮件是一个例子,没有真正的域。
【解决方案2】:

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

为此:

“Jenkins 仪表板 -> 管理 Jenkins -> 配置系统”

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

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

我是这样配置的:

SMTP 服务器:smtp.gmail.com

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

选中复选框使用 smtp 身份验证

给:用户名(不带@gmail.com)-例如:输入mike for mike@gmail.com

提供您的密码

选中复选框使用 SSL

SMTP 端口:465

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

如果您能够成功发送。完成了

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

第一个参数

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

第二个参数

名称:域 默认值:gmail

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

收件人:$username@$domain.com

这应该可以工作..

【讨论】:

  • 我已经做好了配置。谢谢你的解释。问题是其他,我无法发送电子邮件,因为它的参数没有很好地过滤($user)。我认为这是因为我通过另一个作业运行作业触发器,该作业传播了我用来发送电子邮件的参数。
【解决方案3】:

我“找到”了解决方案。对于 Maven 项目,它不适用于 Build 属性中的简单电子邮件通知。我必须使用插件“Ext-mail 插件”来做到这一点。谢谢大家。

【讨论】:

    猜你喜欢
    • 2012-01-21
    • 2016-09-25
    • 1970-01-01
    • 2013-12-16
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    • 1970-01-01
    • 2014-10-16
    相关资源
    最近更新 更多