centos

centos jenkins如何配置邮件

小樊
41
2025-10-20 00:08:10
栏目: 智能运维

CentOS系统下Jenkins配置邮件通知步骤

1. 安装必要插件

在Jenkins中配置邮件通知前,需先安装Email Extension Plugin(支持丰富的邮件模板和触发器)。操作路径:
Manage JenkinsManage PluginsAvailable标签页 → 搜索“Email Extension Plugin” → 勾选并点击“Install without restart”(无需重启即可生效)。

2. 配置全局邮件服务器(系统级设置)

进入Jenkins全局配置页面:Manage JenkinsConfigure System,找到Extended E-mail Notification部分(部分版本可能显示为“邮件通知”),填写以下信息:

配置完成后,点击页面底部的Test Configuration按钮,输入有效收件人邮箱地址,发送测试邮件验证配置是否正确。

3. 配置Job级别的邮件通知(构建后动作)

进入需要配置邮件通知的Jenkins Job页面,点击Configure,找到Post-build Actions部分,点击Add post-build action → 选择Editable Email Notification,配置以下内容:

构建状态:${currentBuild.result}

项目:${env.JOB_NAME}

构建编号:${env.BUILD_NUMBER}

构建日志:查看控制台

```); - **Triggers**:选择触发邮件通知的条件(如“构建失败时发送”“构建成功时发送”“构建不稳定时发送”等,可根据需求组合)。

配置完成后,点击Save保存Job设置。

4. 可选:使用Groovy脚本增强邮件内容

若需要动态生成邮件内容(如包含构建日志片段、测试报告链接等),可在Job配置的Post-build Actions中添加Execute Groovy Script步骤,编写如下脚本:

import jenkins.model.*
import javax.mail.*
import javax.mail.internet.*

// 获取Jenkins环境变量
def jobName = env.JOB_NAME
def buildNumber = env.BUILD_NUMBER
def buildStatus = currentBuild.result
def buildUrl = env.BUILD_URL

// 邮件配置
def smtpServer = "smtp.example.com"
def smtpPort = 587
def smtpUser = "your-email@example.com"
def smtpPass = "your-password"
def from = "jenkins@example.com"
def to = "recipient@example.com"

// 创建邮件会话
def props = new Properties()
props.put("mail.smtp.auth", "true")
props.put("mail.smtp.starttls.enable", "true")
props.put("mail.smtp.host", smtpServer)
props.put("mail.smtp.port", smtpPort)

def session = Session.getInstance(props, new Authenticator() {
    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(smtpUser, smtpPass)
    }
})

try {
    // 创建邮件
    def email = new MimeMessage(session)
    email.setFrom(new InternetAddress(from))
    email.addRecipient(Message.RecipientType.TO, new InternetAddress(to))
    email.setSubject("构建状态通知:${jobName} #${buildNumber}")
    
    // 邮件正文(HTML格式)
    def content = """
    <html>
        <body>
            <h2>构建状态:${buildStatus}</h2>
            <p><strong>项目:</strong>${jobName}</p>
            <p><strong>构建编号:</strong>${buildNumber}</p>
            <p><strong>构建URL:</strong><a href="${buildUrl}">${buildUrl}</a></p>
            <p><strong>控制台输出:</strong><a href="${buildUrl}console">查看日志</a></p>
        </body>
    </html>
    """
    email.setContent(content, "text/html; charset=utf-8")
    
    // 发送邮件
    Transport.send(email)
    println "邮件发送成功!"
} catch (Exception e) {
    println "邮件发送失败:${e.message}"
}

此脚本可实现更灵活的邮件内容定制,如包含构建日志链接、测试报告摘要等。

注意事项

0
看了该问题的人还看了