一,简单设置
1.登陆jenkins--》 系统管理 ---》 系统设置
2.邮箱就是发送者的邮箱,密码是登陆邮箱的密码
3.设置完以后,可以点击‘test configuration’,显示如下,表示成功,然后点击'保存'来保存配置。
4.jenkins任务配置通知人员
多个接收人员可以用空格隔开,但是以上设置只能在构建不稳定的时候才能发邮件,使用以下插件可以设置何时发送。
二、扩展功能
1.安装插件:emailext-template.hpi
插件下载地址:http://updates.jenkins-ci.org/download/plugins/
2.系统管理--》 系统设置
原来的邮箱设置还是先留着,如下:
说明:
default content 内容如下:
(本邮件是jenkins构建自动触发,请勿回复!)
项目名称: $PROJECT_NAME
Jenkins地址: $JENKINS_URL
构建编号: $BUILD_NUMBER
构建状态: $BUILD_STATUS
触发原因: ${CAUSE}
构建日志地址: ${BUILD_URL}console
变更记录: ${BUILD_URL}changes
构建地址:$BUILD_URL
构建结果FTP路径:请查看附件result_ftp_path.txt
default triggers: 指定什么时候触发邮件发送,可以是成功时发送,可以是失败时发送,也可以是只要构建就发送,也可以是其它。
3.任务配置:
多个接收者之间可以使用空格或者逗号隔开。
说明:
Disable Extended Email Publisher :这是一个很人性化的操作,如果在你调试的时候不想发邮件,那么直接勾选该选项就可以了。
以上设置的效果如下:
此外,如果想在邮件中体现其它信息,但是没有对应的环境变量,比如,我们构建结束后,一般会把结果文件存在一定地方或者ftp服务器上,此时,就需要知道这个路基,我们可以使用邮箱设置附件的方式来实现,比如如下:
备注,这是相对于workspace的job目录下的根目录,其它路径可以使用相对路径设置。
此时,邮件效果如下:
这样就可以清楚的看到需要的路径。
另外,上面我们说到,使用这个设置,可以邮箱的打开关闭邮箱,但是,并不行手动去改动,希望实现这样的场景:如果是jenkins自动的管理员admin构建或者是jenkins定时自动构建才需要发送邮件给小组成员,其它时候,小组成员使用自己的账号进行调试的时候,不需要发动邮件给小组成员。这样的场景如果手动去改,就太麻烦了,可以用脚本实现,判断如果是admin和自动构建账号时,如果发送邮件的开关关闭了,就打开,如果不是管理员账号和自动构建时,如果发送邮件的开关已经打开了,就关掉。
函数调用方式:
send_email $JOB_NAME $trigger_user
函数:
function send_email()
{
job_path="/root/.jenkins/jobs"
email_jenkins="http://192.168.8.2:8080/jenkins/job"
config_file=$job_path/$1/config.xml
echo email trigger user $2
echo config_file=$config_file
grep -rn "ExtendedEmailPublisher>" $config_file
email_old_line=`grep -rn "ExtendedEmailPublisher>" $config_file |awk -F ":" '{print $1 }'`
echo email_old_line=$email_old_line
email_fit_line=`expr $email_old_line - 1`
email_fit_con=`sed -n "$email_fit_line"p $config_file`
echo line $email_fit_line content is $email_fit_con
#如果触发者是admin或者是自动触发的,如果邮件发送关掉了,那么打开开关,发送邮件
#如果邮件发送者不是admin也不是自动触发,如果邮件功能打开了,那个关闭开关,不发送邮件
if [ "$2" == "admin" -o "$2" == "SCMTrigger" ] ;then
echo trigger is admin ,need to send email
if [ "${email_fit_con#*<}" == "disabled>true</disabled>" ] ;then
echo but default email send function is disabled, so need to open it
sed -i ""$email_fit_line"c <disabled>false</disabled>" $config_file
curl -u admin:112233 -X POST $email_jenkins/$1/reload
else
echo default email send function is opened ,great !
fi
else
echo trigger is not admin, donot need to send email
if [ "${email_fit_con#*<}" == "disabled>false</disabled>" ];then
echo but default email send function is opened ,so need to close it
sed -i ""$email_fit_line"c <disabled>true</disabled>" $config_file
curl -u admin:112233 -X POST $email_jenkins/$1/reload
else
echo default email send function is closed ,great !
fi
fi
email_fit_con=`sed -n "$email_fit_line"p $config_file`
echo line $email_fit_line new content is $email_fit_con
}
参考:https://www.cnblogs.com/zanjiahaoge666/p/6377488.html