centos jenkins如何配置邮件
CentOS系统下Jenkins配置邮件通知步骤
1. 安装必要插件
在Jenkins中配置邮件通知前,需先安装Email Extension Plugin(支持丰富的邮件模板和触发器)。操作路径:
Manage Jenkins
→ Manage Plugins
→ Available
标签页 → 搜索“Email Extension Plugin” → 勾选并点击“Install without restart”(无需重启即可生效)。
2. 配置全局邮件服务器(系统级设置)
进入Jenkins全局配置页面:Manage Jenkins
→ Configure System
,找到Extended E-mail Notification部分(部分版本可能显示为“邮件通知”),填写以下信息:
- SMTP Server:输入SMTP服务器地址(如Gmail为
smtp.gmail.com
,企业邮箱替换为对应SMTP地址); - SMTP Port:输入端口号(常用587(TLS)或465(SSL));
- SMTP User Name:输入SMTP认证用户名(如个人邮箱地址
your-email@gmail.com
); - SMTP Password:输入SMTP认证密码(若使用Gmail,需提前在账户设置中生成“应用专用密码”);
- Use SMTP Authentication:勾选“启用SMTP认证”;
- Use SSL/TLS:根据SMTP服务器要求勾选(如Gmail需勾选“Use TLS”);
- Default Subject Prefix:设置邮件主题前缀(如
[Jenkins]
,便于识别); - Default Content Type:选择邮件内容类型(通常为
HTML
,支持富文本)。
配置完成后,点击页面底部的Test Configuration按钮,输入有效收件人邮箱地址,发送测试邮件验证配置是否正确。
3. 配置Job级别的邮件通知(构建后动作)
进入需要配置邮件通知的Jenkins Job页面,点击Configure
,找到Post-build Actions部分,点击Add post-build action → 选择Editable Email Notification
,配置以下内容:
- Recipient List:输入收件人邮箱地址(多个地址用逗号分隔,如
dev1@example.com,dev2@example.com
); - Default Subject:设置邮件主题(可使用变量,如
构建 ${ BUILD_STATUS} : ${ JOB_NAME} #${ BUILD_NUMBER}
,其中${ BUILD_STATUS}
表示构建状态(SUCCESS/FAILURE)、${ JOB_NAME}
表示Job名称、${ BUILD_NUMBER}
表示构建编号); - Default Content:设置邮件正文(支持HTML格式,可使用变量,如```html
构建状态:${ 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}
"
}
此脚本可实现更灵活的邮件内容定制,如包含构建日志链接、测试报告摘要等。
注意事项
- 若使用Gmail等第三方邮箱,需确保已开启“允许不够安全的应用访问”(不推荐)或生成“应用专用密码”;
- 若SMTP服务器为自收邮件(如企业内部SMTP),需关闭SSL/TLS或调整端口(如25端口);
- 邮件触发器可根据需求组合(如“构建失败且不稳定时发送”),提高通知针对性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos jenkins如何配置邮件
本文地址: https://pptw.com/jishu/730066.html