当前位置: 首页 > 知识库问答 >
问题:

在詹金斯管道上发送邮件

衡安晏
2023-03-14

嗨,我有一个简单的管道工作,应该发送一封邮件,我对管理詹金斯配置-

node {

    stage("test") {
        def message = "hello there!" 

        mail bcc: '', body: message, cc: '', from: 'jenkinsuser@mycom.com', replyTo: 'jenkinsuser@mycom.com', subject: "Develop: build generated ",     to:'grace@mycom.com'
    }

}

错误:

java.net.SocketException: Connection closed by remote host
    at sun.security.ssl.SSLSocketImpl.checkWrite(Unknown Source)
    at sun.security.ssl.AppOutputStream.write(Unknown Source)
    at com.sun.mail.util.TraceOutputStream.write(TraceOutputStream.java:114)
    at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
    at java.io.BufferedOutputStream.flush(Unknown Source)
    at com.sun.mail.smtp.SMTPTransport.sendCommand(SMTPTransport.java:2104)
Caused: javax.mail.MessagingException: Can't send command to SMTP host;
  nested exception is:
    java.net.SocketException: Connection closed by remote host
    at com.sun.mail.smtp.SMTPTransport.sendCommand(SMTPTransport.java:2106)
    at com.sun.mail.smtp.SMTPTransport.sendCommand(SMTPTransport.java:2093)
    at com.sun.mail.smtp.SMTPTransport.close(SMTPTransport.java:1184)

有什么建议可以解决吗?

谢谢,

共有1个答案

叶弘深
2023-03-14

我在脚本管道中使用电子邮件扩展插件,没有问题。确保您在管理Jenkins中正确配置了电子邮件通知部分

插件用法在这里描述:这里。这是我在管道中调用它的方式(我没有删除变量):

emailext attachmentsPattern: "**/packages/rpm/splitted/${file}",
              to: "${to}",
            from: "Jenkins",
         subject: "[jenkins] ${packageFullName}: part ${part}/${files.size()}",
            body: "File received: \'${file}\'\n" +
                  "From package:  \'${packageFullName}\'\n" +
                  "Package MD5:   \'${mainMdFiveSum}\'\n" +
                  "Jenkins Build: \'${env.BUILD_URL}\'\n"
 类似资料:
  • 问题内容: 已解决 :感谢S.Richmond的以下答复我需要取消所有类型的存储映射,这意味着将变量和使用后作废。 附加 :搜索此错误的人员可能有兴趣使用Jenkins管道步骤- 在此处查找更多信息。 我正在尝试使用Jenkins Pipeline从用户那里获取输入,该输入作为json字符串传递给作业。管道然后使用隔离器对此进行解析,然后选择重要信息。然后,它将使用该信息与不同的作业参数并行运行1

  • 下面是我简单的jenkins pipeline groovy脚本,它将用这两个阶段和我们想要构建的作业创建一个管道,我希望在job configuration下的脚本中每次都更新用于构建和代码分析的作业名,方法是从用户界面中获取数据,用户将使用Eclipse提供构建作业名和代码分析作业名- jenkinsfile脚本:-

  • 问题内容: 我们有几个Java项目。每个项目都有自己的交付管道。 所有管道都具有以下共同的步骤(简化): 建立项目 发布项目 部署到测试环境 部署到生产环境 项目管道仅在项目特定的属性(例如服务名称或测试和生产环境的IP地址)上有所不同。 问题是:我们如何避免所有项目都有共同之处?Jenkins的“管道作为代码”是否提供类似管道模板的内容? 我可以想象一个模板将在我们的项目管道中节省很多冗余代码/

  • 问题内容: 我有两条詹金斯管道,比方说管道A和管道B。我想在管道B中调用管道A。我怎样才能做到这一点? (管道A是管道B的子集。管道A负责执行一些日常工作,可以在管道B中重用) 我已经在计算机上安装了Jenkins 2.41。 问题答案: 以下解决方案对我有效: 在此处添加“管道:构建步骤”官方文档的链接:https : //jenkins.io/doc/pipeline/steps/pipeli

  • 问题内容: 我已经使用Jenkins为我的node js应用程序创建了CI管道。我的管道包括诸如构建,单元测试,集成测试,代码分析等工作。我知道默认情况下,即使一个测试用例失败,构建也会失败。 问题答案: 您的单元测试脚本将需要处理数学和逻辑,以确定失败的测试百分比足以使整个工作失败。然后,您的单元测试脚本可以返回通过(零)或失败(其他任何结果),詹金斯将相应地标记构建。

  • 问题内容: 这是我要执行的Jenkins管道。我正在关注本教程: 但是作业失败,并显示以下消息。 有人可以帮我解决为什么失败了。 问题答案: 您需要在阶段声明之后添加一个step块。