如何在VSTS的CD流水线中部署后触发自定义消息邮件通知?有无内置功能?
在Azure DevOps(原VSTS)CD流水线中实现部署后的自定义邮件通知
我来帮你解答这两个问题,毕竟在Azure DevOps里配置部署通知是日常操作了:
关于VSTS内部邮件功能的说明
首先明确:Azure DevOps(原VSTS)本身自带无需SMTP的内置通知机制,完全不需要依赖谷歌这类第三方SMTP服务器就能发送邮件通知。另外,如果你用Office 365,还有官方提供的邮件任务可以实现更灵活的自定义,也是内部支持的方案。
方法一:使用内置通知订阅(快速实现基础自定义)
这是最省心的方式,几步就能搞定部署成功后的邮件通知:
- 打开你的Azure DevOps项目,点击顶部导航栏的「通知」图标(铃铛形状),选择「管理通知」。
- 在通知管理页面,点击「新建订阅」。
- 在「选择事件」下拉框中,找到「部署」分类下的**「部署完成」**事件。
- 配置触发条件:
- 选择你目标的CD流水线
- 设置状态为**「成功」**(确保只有部署成功时触发)
- 可选:指定特定的部署环境(比如只通知生产环境的部署)
- 自定义通知内容:
- 邮件主题可以用系统变量动态生成,比如:
部署成功通知:${pipeline.name}(${deployment.environment.name}环境) - 邮件内容同样可以插入变量,比如:
流水线${pipeline.name}已成功部署到${deployment.environment.name}环境。部署完成时间:${deployment.finishTime}。点击查看详情:${deployment.url}
- 邮件主题可以用系统变量动态生成,比如:
- 指定接收者:选择要通知的开发者团队、个人邮箱,保存订阅即可。
方法二:使用Office 365 Send Email任务(灵活自定义内容)
如果内置通知的自定义程度满足不了你(比如需要HTML格式、附件或更复杂的逻辑),且你的团队使用Office 365,推荐用这个官方任务:
- 在CD流水线的部署阶段末尾,添加一个任务,搜索「Office 365 Send Email」并添加到流水线中。
- 配置Office 365服务连接:如果还没有,点击「新建」,按照提示授权Azure DevOps访问你的Office 365账户即可(这是官方安全授权,无需手动配置SMTP)。
- 填写邮件详情:
- 收件人:填写开发者的邮箱或团队组地址
- 主题:自定义动态主题,比如
[部署成功] ${Build.DefinitionName} 已上线 ${Release.EnvironmentName} 环境 - 邮件内容:支持HTML格式,插入流水线变量丰富内容,比如:
<p>各位开发者好:</p> <p>流水线 <strong>${Build.DefinitionName}</strong> 已成功部署到 <strong>${Release.EnvironmentName}</strong> 环境。</p> <p>部署触发时间:${Release.CreatedOn}</p> <p>查看完整部署日志:<a href="${Release.ReleaseUri}">点击跳转</a></p>
- 配置任务运行条件:在任务的「控制选项」里,设置「运行此任务」为**「只有当所有先前任务成功时」**,确保只有部署成功才发邮件。
补充:如果一定要用「Send Email」任务
如果因为某些原因必须使用这个任务,那确实需要配置第三方SMTP服务器(比如谷歌SMTP、企业内部邮箱SMTP),Azure DevOps没有内置的SMTP服务供这个任务使用。但还是更推荐前面两种官方方案,不用自己维护SMTP的配置和权限。
内容的提问来源于stack exchange,提问作者vignesh srinivasan
相关产品推荐
相关产品推荐

