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

Go结合AWS SES发送邮件异常:计数增长但未收到邮件求助

问题解答

1. SES计数递增但收不到邮件的排查方向

  • 沙箱限制:新创建的AWS SES账号默认处于沙箱模式,仅能向SES控制台已验证的收件人邮箱发送邮件,且发件人邮箱也必须完成验证。若收件人未验证,邮件会被SES拦截,不会实际送达,但仍会计入“已发送邮件”统计。
  • 邮件被归类为垃圾邮件:优先检查收件邮箱的垃圾邮件/垃圾箱文件夹,SES发送的邮件常被邮箱服务商标记为垃圾。可在SES控制台「已发送邮件」列表中查看单条邮件的送达状态,确认是否存在退信、拒收等记录。
  • SMTP配置错误:
    • 端口需正确:SES SMTP仅支持587(STARTTLS)和465(SSL)端口,请勿使用其他端口。
    • SMTP凭证需对应:必须在IAM控制台生成SES专用SMTP凭证,而非普通IAM访问密钥。
    • 发件人地址需验证:发件人邮箱或域名必须在SES中完成身份验证,否则邮件会被拦截。
  • Lambda网络配置问题:若Lambda部署在VPC内,需确保其能访问SES的SMTP公网端点。VPC内的Lambda默认无公网访问权限,需配置NAT网关或部署在公有子网并启用公网访问。

2. ParseMultipartForm(10 << 20)与SES 10MB限制的关系

10 << 20 等价于10MB,该设置用于限制HTTP表单数据在内存中的存储上限,超出部分会写入Lambda的临时磁盘存储。

SES的10MB限制指整个邮件的总大小(含邮件内容、附件、头部信息等),此表单解析设置与SES限制本身不冲突,但需注意:

  • 最终组装的邮件(表单数据转成的内容、附件等)总大小不可超过10MB。
  • 若表单包含大文件,即便ParseMultipartForm能处理,也要确保最终邮件大小符合SES要求。

3. 是否必须使用AWS SDK的SES包?

不需要。AWS SES支持SMTP协议和API调用两种发送方式:

  • 用Go标准库net/smtp结合SES SMTP凭证发送邮件是完全合法且可行的方案,配置正确即可正常发送。
  • AWS SDK的SES包只是封装了SES的API接口,提供了另一种发送途径,两者无强制选择要求,可根据需求决定(API方式支持更多高级功能,SMTP方式更通用)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 16:50:19