jenkins 邮件中添加附件踩坑史

本文介绍如何在Jenkins中配置系统设置及Extended E-mail Notification插件,包括设置邮件格式、默认收件人等内容,并展示了默认邮件模板的具体样式。

配置
1.   系统设置
1)     进入【系统管理】-【系统设置】进行如下配置:设置${BUILD_TIMESTAMP}格式

 


2)     配置 ExtendedE-mail Notification默认设置
设置邮件内容和发送人:

default content type:设置邮件发送的格式:文本格式或者html格式

Use List-ID Email Header:设置邮件的发送的名称(便于过滤)

Default Recipients:设置默认的收件人

Reply To List:设置默认回复列表

Emergency reroute:相当于一个邮件的转发(邮件先发送到这里,然后在进行进一步处理)

Excluded Recipients:设置接收的黑名单(就是不发送给这些人)

Default Subject:设置默认的邮件主题

Maximum Attachment Size:这只邮件附件的最大值

Default Content:设置邮件的默认内容(里面可以引用一些环境变量的参数,或者插件的一些变量)

Default Pre-send Script:在发送邮件前执行的脚本

邮件通知:这是默认的邮件发送工具,配置和extemail插件设置差不多,只是不能设置邮件的默认发送策略,和邮件发送的内容等信息

 

 

Default Subject:构建通知:$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!

Default Content:

<hr/>

(本邮件是程序自动下发的,请勿回复!)<br/><hr/>

项目名称:$PROJECT_NAME<br/><hr/>

构建编号:$BUILD_NUMBER<br/><hr/>

svn版本号:${SVN_REVISION}<br/><hr/>

构建状态:$BUILD_STATUS<br/><hr/>

触发原因:${CAUSE}<br/><hr/>

构建日志地址:<a href="${BUILD_URL}console">${BUILD_URL}console</a><br/><hr/>

构建地址:<a href="$BUILD_URL">$BUILD_URL</a><br/><hr/>

变更集:${JELLY_SCRIPT,template="html"}<br/><hr/>

 

 

切记:项目放在jenkins下的workspace中,否则邮件的附件不好找路径

 

 

 

 

 

 

 

 

<think>我们正在回答用户关于“在Jenkins中配置邮件通知时添加本地文件作为附件”的问题。根据提供的引用,我们需要参考引用[4]中提到的邮件配置部分,尤其是关于添加附件的说明。引用[4]提到:“12,Jenkins实战应用--Jenkins复杂邮件推送配置详解。...有时候构建有配置更新,可能会有非常大的日志,这个时候就要在主配置文件当中,设置附件大小的限制。...去到系统管理---》系统设置---》主配置这里,有一个附件大小的配置...”但是,用户具体需要的是如何添加本地文件作为附件。由于引用中没有直接给出步骤,我们需要结合Jenkins的一般配置方法进行说明。在Jenkins中,邮件通知通常使用“EmailExtensionPlugin”插件(比默认的邮件通知更强大)。添加附件的一般步骤如下:1.确保已经安装了“EmailExtensionPlugin”插件。2.在Jenkins的全局系统设置中配置SMTP服务器等基本信息。3.在Job的配置页面,添加构建后步骤“EditableEmailNotification”。4.在该步骤中,可以指定附件的位置。通常,我们可以使用Ant风格的路径表达式来指定要附加的文件。但是,这里需要注意:Jenkins默认的工作空间是当前Job的工作目录,所以如果你想附加一个在构建过程中生成的文件(比如在workspace目录下的某个文件),那么可以直接指定相对路径。然而,用户要求添加的是“本地文件”,这个本地文件可能有两种情况:a)该文件是构建过程中生成的,位于工作空间内。b)该文件是存在于Jenkins服务器本地文件系统上某个位置,但不在工作空间内。对于情况a,直接指定相对于工作空间的路径即可。对于情况b,则需要注意权限问题,并且通常建议将文件复制到工作空间内再附加,因为Jenkins的安全策略可能不允许直接访问工作空间之外的文件。另外,引用[4]还提到要设置附件大小的限制,这很重要,因为如果附件过大,邮件可能发送失败。因此,我们将给出以下步骤:步骤1:确保安装了EmailExtensionPlugin插件(如果未安装,则需要先安装)。步骤2:在Job的配置中,添加构建后操作“EditableEmailNotification”。步骤3:在“Attachments”区域,指定要附加的文件路径(支持Ant风格,如:**/*.log)。步骤4:如果文件位于工作空间外,需要在构建步骤中将其复制到工作空间内(例如使用copy命令或脚本)。步骤5:注意设置邮件内容和其他选项。步骤6:保存配置并测试。但是,我们也要注意引用[4]中的警告:在系统设置中设置附件大小限制(系统管理->系统设置->JenkinsLocation->ExtendedE-mailNotification->附件大小限制),默认是5MB。下面给出一个详细的配置示例:1.安装EmailExtensionPlugin:-进入Jenkins的“系统管理”->“插件管理”->在“可选插件”中搜索“EmailExtensionPlugin”,安装并重启Jenkins。2.配置全局邮件设置(系统管理->系统设置):-SMTP服务器:填写你的邮件服务器地址。-其他相关设置(如认证、端口等)按需填写。-在“ExtendedE-mailNotification”部分,设置默认的发件人、邮件后缀等。-设置附件大小限制(如果需要,可以增大,但要注意邮件服务器的限制)。3.在具体的Job中配置邮件附件:-假设我们的Job在构建过程中生成了一个报告文件`target/report.pdf`(在工作空间内的相对路径),或者我们有一个位于服务器上的文件`C:\reports\latest.pdf`。-如果我们想附加的是`target/report.pdf`,则直接在邮件附件设置中填写:`target/report.pdf`。-如果文件在`C:\reports\latest.pdf`,我们需要先将其复制到当前工作空间。可以在构建步骤中添加一个Windows批处理命令(假设Jenkins在Windows上):```batchcopy"C:\reports\latest.pdf""%WORKSPACE%"```然后,在邮件附件设置中填写:`latest.pdf`。-或者,也可以使用Ant风格的路径,例如如果文件名不确定,可以写`*.pdf`(但这样可能匹配多个,需要谨慎)。4.在Job配置页面的“构建后操作”部分,选择“EditableEmailNotification”:-填写收件人(RecipientList)。-在“Attachments”一栏中,填入文件路径(例如:`target/report.pdf`或`latest.pdf`)。-其他配置如邮件标题、内容等根据需要设置。5.保存并运行构建,检查邮件是否收到了附件。注意事项:-确保文件确实存在:在构建时,文件应该在邮件发送步骤之前生成或复制完成。-路径问题:附件路径是相对于工作空间的。如果用户使用的是Freestyleproject,上述步骤适用。如果是Pipeline,则需要使用emailext插件提供的步骤,在Pipelinescript中编写。例如:emailext(attachmentsPattern:'target/report.pdf',to:'user@example.com',subject:"Job:${currentBuild.fullDisplayName}",body:"Pleaseseetheattachedfile.")以上即为配置Jenkins邮件附件的基本步骤。根据引用的内容,我们特别参考了引用[4]关于附件大小限制的提示。因此,在配置过程中,如果遇到附件大小超过默认限制,请务必在系统设置的“ExtendedE-mailNotification”部分调整“AttachmentSizeThreshold”(单位是MB)。最后,建议用户测试邮件发送功能,确保附件正确添加邮件发送成功。生成相关问题:1.如何安装Jenkins的EmailExtensionPlugin插件?2.Jenkins中如何配置SMTP服务器?3.在Jenkins的Pipeline脚本中如何发送带附件邮件?4.如何解决Jenkins邮件附件过大导致的发送失败问题?</think> ### Jenkins邮件通知配置:添加本地文件附件教程 在Jenkins中通过邮件通知发送本地文件作为附件,需要结合**Extended Email Plugin**插件和文件路径配置实现。以下是具体步骤: --- ### 第一步:安装必需插件 1. **安装[Email Extension Plugin](https://plugins.jenkins.io/email-ext)** ``` 系统管理 → 插件管理 → 搜索"Email Extension" → 安装并重启Jenkins ``` > 该插件支持附件功能和高级邮件配置[^1][^4] 2. **确保本地文件存在** - 文件需存储在Jenkins服务器本地路径(如`C:\reports\build_report.zip`) - 或通过构建任务生成到工作空间(如`${WORKSPACE}/output.log`) --- ### 第二步:配置邮件附件参数 1. **进入Job配置** ```bash Job → 配置 → 构建后操作 → Editable Email Notification ``` 2. **附件配置关键参数** | 参数名 | 值示例 | 说明 | |--------|---------|------| | `Attachments` | `C:\reports\*.log` | 本地绝对路径+通配符 | | 或 | `${WORKSPACE}/test_results/*.xml` | 相对工作空间路径 | | `Attachment Size Threshold` | 10 | 附件大小限制(MB)[^4] | ![附件配置示例](https://jenkins.io/images/email-attachments.png) *路径支持Ant风格表达式:`**/report/*.pdf`匹配所有子目录[^4]* --- ### 第三步:全局系统设置 1. **设置附件上限** ```bash 系统管理 → 系统设置 → Extended E-mail Notification → Attachment Size Threshold (默认5MB) ``` > 大文件需调整此值避免发送失败[^4] 2. **SMTP基础配置** ```ini SMTP server: smtp.example.com 高级: 勾选 Use SMTP Authentication 测试邮件: test@example.com ``` --- ### 疑难解答 - **⚠️ 文件路径权限问题** - Windows:确认`JENKINS_HOME/service`账户有文件读取权限 - Linux:检查`jenkins`用户的文件访问权限 - **📎 附件未发送的检查点** 1. 构建日志查看`Attaching path`确认文件匹配 2. 检查`$JENKINS_HOME/emailext-*.tmp`临时目录空间 3. SMTP日志:`Manage Jenkins → System Log` --- ### 最佳实践 1. **推荐使用工作空间相对路径** ```bash # Pipeline示例 emailext attachmentsPattern: 'target/**/*.junit.xml', to: 'team@company.com' ``` 2. **大文件处理** - 分割压缩:`split -b 10m large.log` - 云存储链接:邮件添加文件下载URL > 完整文档参考:[Email Extension Plugin Docs](https://www.jenkins.io/doc/pipeline/steps/email-ext)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值