当前位置: 首页 > 知识库问答 >
问题:

如何使用带后缀的AWS SES接收弹回邮件

施超
2023-03-14

我已经配置postfix通过遵循他们的集成指南和发送电子邮件的工作没有问题,以中继邮件到亚马逊SES。

然而,我最近使用一个框架编写了一个PHP应用程序,它生成了一条格式错误的电子邮件。

SES拒绝带有“554 Transaction failed:Expected MIME type,get=”的电子邮件,这是可以接受的。

然而,我的本地postfix服务器随后尝试发送发件人未送达通知,其中包含来自=

SES拒绝声明“提供了501个来自地址的无效邮件(回复来自命令的邮件)”,postfix将从队列中删除跳出消息。

问题是,有什么更简单的方法可以确保我收到最初的554 bounce消息?我看不到让SES中继接受字段为空的方法,所以我相信解决方案在于配置postfix,以便直接将跳转消息传递给我。

请注意,我使用术语“反弹邮件”可能是错误的。邮件可能被拒绝,但我不确定这种情况的正确命名。关键是消息不被SES中继接受,所以它实际上没有“出门”。

Jun 12 03:11:21 myserver postfix/smtp[6353]: 411BA21795: to=<valid@validdomain.com>, relay=email-smtp.us-east-1.amazonaws.com[54.243.192.132]:25, delay=0.29, delays=0.05/0.02/0.15/0.07, dsn=5.0.0, status=bounced (host email-smtp.us-east-1.amazonaws.com[54.243    .192.132] said: 554 Transaction failed: Expected MIME type, got = (in reply to end of DATA command))
Jun 12 03:11:21 myserver postfix/cleanup[6351]: 93F202179B: message-id=
Jun 12 03:11:21 myserver postfix/qmgr[895]: 93F202179B: from=<>, size=4673, nrcpt=1 (queue active)
Jun 12 03:11:21 myserver postfix/bounce[6354]: 411BA21795: sender non-delivery notification: 93F202179B
Jun 12 03:11:21 myserver postfix/qmgr[895]: 411BA21795: removed

Jun 12 03:11:21 myserver postfix/smtp[6353]: 93F202179B: to=<valid@validdomain.com>, relay=email-smtp.us-east-1.amazona    ws.com[23.21.161.144]:25, delay=0.17, delays=0.01/0/0.15/0, dsn=5.0.0, status=bounced (host email-smtp.us-east-1.amazonaws.com[23.    21.161.144] said: 501 Invalid MAIL FROM address provided (in reply to MAIL FROM command))
Jun 12 03:11:21 myserver postfix/qmgr[895]: 93F202179B: removed

共有3个答案

沈枫涟
2023-03-14

你不能说服postfix用以外的任何东西来填写邮件

您可以在main.cf中启用双弹跳通知:

# enable double bounce notifications (resource, software are the defaults)
notify_classes = 2bounce, resource, software

# Set the sender address for 2bounce
# @myhostname will be appended even if you have an @ in the sender
double_bounce_sender = postmaster

# Set the recipient address for 2bounce
2bounce_notice_recipient = bounce.notify@company.com
# (and resource, software)
error_notice_recipient = bounce.notify@company.com

你最终会得到这样的东西。

PHP app (From: <your-app@company.com>) --> SES (To: <some-offiste@customer.com>) 
: 5xx Rejected 

Postfix (From: <>) -> SES (<your-app@company.com>)
: 501 Rejected Invalid MAIL FROM

Postfix (From: <postmaster@company.com>) -> SES (<bounce.notify@company.com>)

虽然这严格回答了一个问题,即反弹邮件将通过SES进行尝试,但值得注意的是,在电子邮件由于配置问题而失败的情况下,这并不一定比其他答案中建议的将反弹收件人设置为本地邮箱更有用——2反弹邮件将受到相同的配置问题,并且可能也无法发送。

江华容
2023-03-14

为了接收绑定的邮件,您必须设置一个信封发送者地址,该地址在您的后缀安装中本地传递。

检查

   postconf mydestination

查看哪些域在本地交付。然后,应用程序需要将信封发件人地址设置为有效的本地送达地址。差不多root@name.of.your.machine

马沛
2023-03-14

如果您只需要将Postfix bounce消息发送到收件箱,只需设置下一个与bounce相关的配置参数(/etc/Postfix/main.cf file for Ubuntu):

# The list of error classes that are reported
notify_classes = bounce, delay, policy, protocol, resource, software

# The recipient of postmaster bounce notifications
bounce_notice_recipient = bounceuser

# The recipient of postmaster notifications about mail delivery problems that
# are caused by policy, resource, software or protocol errors.
error_notice_recipient = bounceuser

# The recipient of postmaster notifications with the message headers of mail
# that cannot be delivered within $delay_warning_time time units
delay_notice_recipient = bounceuser

bounceuser是接收与弹跳相关消息的收件人。如果您需要将邮件转发给非本地收件人,只需编辑/etc/别名,使postfix将邮件转发给您:

# /dev/null will just delete the message from local
bounceuser: /dev/null, <YOUR_EMAIL_ADDRESS_HERE>

不要忘记重新创建别名数据库并重新启动后缀服务:

sudo newaliases
sudo service postfix restart

^_^

 类似资料:
  • 我正在编写一个bash shell脚本来输出文件名的后缀。 在这种情况下,我使用: 因此,输出例如: 但是,如果文件名没有后缀,因此没有点,我该怎么办?我的输出应该是“无后缀”,但我不知道如何用sed做到这一点。 编辑我已经尝试过的内容: 目录: 输入: 输出:

  • 我试图从我的应用程序发送电子邮件,我在android上的电子邮件客户端中看到了应有的链接,但当我检查电子邮件接收器时,没有链接。 这是我的代码: “文本”是html。 谢谢你。

  • 我请你们所有人回答我在HikariCP文档中找不到的问题。假设我设置了以下池参数: 注意:我不是数据库的所有者,我不能配置它或让它重新配置以满足我的需要。我也无法访问它的配置。 我们的设置是Spring 4.1.6,Hibernate 4.3.7和JPA 2.1 API,Hikari 2.1.0

  • 问题内容: 我有一个名为“ seeder”的软件包: 现在我想用MyFunc前缀调用所有函数 我想要这样的东西: 这个输出: EDIT1 :在此示例中,parentKey是在循环中更改的字符串变量 但是GC说: 使用没有选择器的包播种机 问题答案: 您无法通过函数名称获得函数,而这正是您想要做的。原因是,如果Go工具可以检测到未显式引用某个函数(因此无法访问该函数),则该函数甚至可能无法编译为可执

  • 我的讲师给了我一个任务,创建一个程序,使用堆栈将中缀表达式转换为后缀。我制作了堆栈类和一些函数来读取中缀表达式。 但是这个名为inToPos(charstring[])的函数正在创建断点,该函数负责使用堆栈将字符串中缀中的中缀表达式转换为字符串后缀中的后缀表达式。你们能帮帮我,告诉我我做错了什么吗? 这些是我的代码,非常需要您的帮助:) 注:inToPos功能是使用以下算法实现的: 从左到右扫描中