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

使用AWS SES发送邮件遭遇SignatureDoesNotMatch错误求排查

问题原因及解决方法

核心错误

你误用了SMTP专用凭证来调用AWS SES API。从SES控制台SMTP设置生成的凭证是用于SMTP协议发送邮件的,和AWS API调用所需的IAM Access Key/Secret Key不是同一套,这直接导致签名验证失败。

解决步骤

  • 创建IAM用户:进入IAM控制台,新建一个用户,为其分配SES相关权限(比如AmazonSESFullAccess,或仅允许发送邮件的精细权限)
  • 获取正确凭证:从该IAM用户的安全凭证页面,生成并获取Access Key ID(20位)和Secret Access Key(约40位,而非SMTP的44位密钥)
  • 替换代码凭证:将代码中的awsSesID和awsSesSecret替换为上述IAM用户的凭证

备选方案(若坚持用SMTP凭证)

如果想使用SMTP凭证发送邮件,需改用SMTP协议而非SES SDK,示例代码框架如下:

import "net/smtp"

func main() {
    auth := smtp.PlainAuth("", "SMTP_USERNAME", "SMTP_PASSWORD", "email-smtp.<你的区域>.amazonaws.com")
    err := smtp.SendMail("email-smtp.<你的区域>.amazonaws.com:587", auth, "from@example.com", []string{"to@example.com"}, []byte("邮件内容"))
    // 处理错误逻辑
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 21:52:10