You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins流水线使用AWS SES发邮件失败,发件人身份异常求助

问题分析与解决

问题根源

你流水线里用的是Jenkins原生mail步骤,且from字段留空,导致Jenkins自动用服务器主机名生成默认发件人邮箱(就是报错里的jenkins@ip-xxxx-xxxx-xxxx-xxxx.ap-south-1.compute.internal),这个邮箱没在AWS SES验证过,被沙箱模式拦截了。而系统配置的测试邮件是用你设置的已验证管理员邮箱发送的,所以能成功。

解决方案

方案1:给原生mail步骤指定验证过的发件人

直接修改mail步骤的from字段,填入你在SES验证过的邮箱:

always {
    mail bcc: '', 
         body: "<br>Project: ${env.JOB_NAME} <br>Build Number: ${env.BUILD_NUMBER} <br> URL de build: ${env.BUILD_URL}", 
         cc: '', 
         charset: 'UTF-8', 
         from: "myemail0@gmail.com", // 替换为你验证过的邮箱
         mimeType: 'text/html', 
         replyTo: '', 
         subject: "${currentBuild.result} CI: Project name -> ${env.JOB_NAME}", 
         to: "myemail0@gmail.com"
}

方案2:改用Email Extension插件的emailext步骤(推荐)

既然已经装了Email Extension插件,直接用它的emailext步骤,会自动继承系统配置的管理员邮箱作为发件人,不用手动指定:

always {
    emailext(
        subject: "${currentBuild.result} CI: Project name -> ${env.JOB_NAME}",
        body: """<br>Project: ${env.JOB_NAME} <br>Build Number: ${env.BUILD_NUMBER} <br> URL de build: ${env.BUILD_URL}""",
        to: "myemail0@gmail.com",
        mimeType: 'text/html',
        charset: 'UTF-8'
    )
}

额外验证

检查Jenkins全局配置:

  • 确认「系统管理员邮件地址」是你在SES验证过的邮箱
  • 确认Email Extension插件的「Default From Address」设置为${DEFAULT_FROM}(自动读取系统管理员邮箱)

内容的提问来源于stack exchange,提问作者user22087029

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 01:55:11