如何在Azure Pipeline中配置阶段以实现部署成功后发送邮件通知?
部署成功邮件通知模板及故障排查方案
通用邮件通知模板示例
1. Shell脚本模板(服务器本地部署场景)
适用于Shell脚本完成部署后触发邮件通知,依赖sendmail或mutt工具:
#!/bin/bash # 配置参数 ENV_NAME="生产环境" DEPLOY_VERSION="v1.2.3" DEPLOY_TIME=$(date +"%Y-%m-%d %H:%M:%S") SMTP_SERVER="smtp.example.com" SMTP_PORT="587" SMTP_USER="notify@example.com" SMTP_PASS="your_app_password" TO_EMAIL="dev-team@example.com,ops-team@example.com" SUBJECT="【部署成功通知】${ENV_NAME}环境已完成版本更新" # 邮件内容 EMAIL_CONTENT=" 环境名称: ${ENV_NAME} 部署版本: ${DEPLOY_VERSION} 完成时间: ${DEPLOY_TIME} 部署状态: 成功 请确认服务运行正常,如有问题及时排查。 " # 用sendmail发送(需提前配置sendmail的SMTP参数) echo "${EMAIL_CONTENT}" | sendmail -f "${SMTP_USER}" -t "${TO_EMAIL}" -s "${SUBJECT}" # 或用mutt发送(需提前安装mutt) # echo "${EMAIL_CONTENT}" | mutt -s "${SUBJECT}" -e "set from=${SMTP_USER}" -e "set smtp_url=smtp://${SMTP_USER}:${SMTP_PASS}@${SMTP_SERVER}:${SMTP_PORT}" ${TO_EMAIL}
2. GitHub Actions 邮件通知模板
适用于GitHub流水线部署完成后触发通知:
name: 部署并发送通知 on: push: branches: [ main ] jobs: deploy: runs-on: ubuntu-latest steps: - name: 拉取代码 uses: actions/checkout@v4 - name: 执行部署脚本 run: | # 替换为你的实际部署命令 ./deploy-prod.sh - name: 发送部署成功邮件 if: success() uses: dawidd6/action-send-mail@v3 with: server_address: smtp.example.com server_port: 587 username: ${{ secrets.SMTP_USER }} password: ${{ secrets.SMTP_PASS }} subject: 【GitHub部署成功】生产环境版本更新完成 body: | 环境名称: 生产环境 部署版本: ${{ github.sha }} 触发提交: ${{ github.event.head_commit.message }} 完成时间: $(date +"%Y-%m-%d %H:%M:%S") to: dev-team@example.com,ops-team@example.com from: GitHub Deploy Bot <notify@example.com>
3. Jenkins 邮件通知模板(Freestyle项目)
在Jenkins系统配置的「Extended E-mail Notification」中设置如下HTML模板:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>部署成功通知</title> </head> <body> <h3>【部署成功】${ENV, var="ENV_NAME"}环境更新完成</h3> <ul> <li>环境名称: ${ENV, var="ENV_NAME"}</li> <li>部署版本: ${GIT_COMMIT}</li> <li>构建编号: ${BUILD_NUMBER}</li> <li>完成时间: ${BUILD_TIMESTAMP}</li> <li>构建日志: <a href="${BUILD_URL}console">点击查看</a></li> </ul> <p>请确认服务状态,如有异常及时处理。</p> </body> </html>
触发配置:在项目「构建后操作」中勾选「Editable Email Notification」,设置触发器为「Success」,并指定收件人列表。
配置失败常见排查点
- SMTP服务器参数错误:核对SMTP地址、端口(SSL用465,TLS用587)是否匹配邮件服务商要求,用户名/密码是否有效(部分服务商需启用「应用密码」而非登录密码)。
- 网络访问限制:检查部署服务器/CI runner是否能访问SMTP服务器,防火墙、安全组是否放行对应出站端口。
- 变量传递失效:确认模板中的环境名、版本号等变量是否正确赋值,比如Shell脚本变量是否提前定义,Jenkins/GitHub Actions中变量是否存在。
- 权限不足:执行发送操作的用户是否有足够权限(比如Shell脚本执行用户能否调用sendmail,Jenkins进程是否有权读取SMTP密码)。
- 触发条件错误:确认是否设置了正确的触发时机(比如GitHub Actions中
if: success()是否生效,Jenkins是否勾选了对应构建状态的触发器)。
内容的提问来源于stack exchange,提问作者ANAND RAJEEV
相关产品推荐
相关产品推荐

