设置Return-Path后退信通知丢失退信原因,寻求解决方案
问题描述
我发送大量邮件,因此会收到退信通知。我希望修改接收退信通知的邮箱地址:
初始设置下,退信通知发送至发件人邮箱sender@email.com,内容如下:
An error occurred while trying to deliver the mail to the following recipients: aaa@a.fr Reporting-MTA: dns; b224-51.smtp-out.eu-central-1.amazonses.com Action: failed Final-Recipient: rfc822; aaa@a.fr Diagnostic-Code: smtp; 550 4.4.7 Message expired: unable to deliver in 840 minutes.<421 4.4.1 Failed to establish connection> Status: 4.4.7 ----- Original message ----- From:sender@email.com To:aaa@a.fr CC:null Date:Sat, 9 Nov 2024 12:00:20 +0000 Subject:mySubject contentEmail
当将Return-Path头部设置为other@email.com后,收到的退信通知丢失了退信原因,内容如下:
An error occurred while trying to deliver the mail to the following recipients: aaa@a.fr ---------- Forwarded message ---------- From: sender@email.com To: aaa@a.fr Cc: Bcc: Date: Subject: mySubject contentEmail
我可以通过SNS获取退信原因,但这样会收到两份退信相关邮件。请问如何让退信邮件包含退信原因?或如何禁用退信邮件通知以仅使用SNS?
解决方案
一、让退信邮件包含完整退信原因
别手动设置Return-Path头部,改用SES的自定义退回邮箱功能:
- 打开SES控制台,进入「配置集」,选中你正在使用的配置集
- 找到「退回和投诉」设置,把
other@email.com设为退回接收邮箱 - 用这种方式,SES会自动处理
Return-Path,退信通知里会保留完整的诊断信息,包括Reporting-MTA、Diagnostic-Code这些关键字段
手动修改Return-Path会绕开SES的默认退信处理逻辑,导致退信内容被简化,所以必须通过官方配置集来指定退回邮箱。
二、禁用退信邮件通知,仅使用SNS接收退信信息
如果只想通过SNS获取退信数据,直接关掉SES的自动退信邮件发送即可:
- 进入SES控制台的「配置集」,选择目标配置集
- 在「退回和投诉」设置中,取消勾选「发送退回通知邮件」
- 确保已经配置好SNS主题来接收退信事件:
- 在配置集的「事件发布」中,开启「退回」事件,并关联对应的SNS主题
- 这样所有退信信息都会通过SNS推送,不会再发送退信邮件到任何邮箱
内容的提问来源于stack exchange,提问作者François Gautier
相关产品推荐
相关产品推荐

