我只配置了一个仅允许从@example.com发送的后缀MTA
当弹跳发生时,我想用脚本来处理。
我遵循了这个答案所给出的步骤:https://serverfault.com/a/735721/444076
我的脚本被正确调用,但是from地址仍然收到一封电子邮件。我怎样才能防止这种情况发生呢?
mydestination = bounce.example.com, localhost
# BOUNCE CONFIG
notify_classes = bounce
bounce_notice_recipient = bounce@bounce.example.com
transport_maps = hash:/etc/postfix/transport_maps
bounce_size_limit = 1
# when you make changes to this file, run:
# sudo postmap /etc/postfix/transport_maps
bounce@bounce.example.com bulkbounce:
bulkbounce unix - n n - - pipe
flags=FRq user=nouser argv=/path/to/bouncescript.sh
然而,发送类似于(有效的,无效的rcpt)的邮件:
FROM: someuser@example.com
TO: invalid@invalid.com
SUBJECT: ...
...
结果在我的脚本被调用(很好)和someuser@example.com收到电子邮件与反弹消息(不需要)。
我怎么能让它失效呢?或者我错过了什么。
示例日志:
Nov 16 17:27:32 dev postfix/smtpd[6654]: connect from localhost[::1]
Nov 16 17:27:32 dev postfix/smtpd[6654]: 486FED9F98: client=localhost[::1]
Nov 16 17:27:32 dev postfix/cleanup[6658]: 486FED9F98: message-id=<3884f81324a6b2e7dfd90e01c3477084@swift.generated>
Nov 16 17:27:32 dev postfix/qmgr[6652]: 486FED9F98: from=<someuser@example>, size=544, nrcpt=1 (queue active)
Nov 16 17:27:32 dev postfix/smtpd[6654]: disconnect from localhost[::1]
Nov 16 17:28:13 dev postfix/smtp[6659]: 486FED9F98: to=<bouncetest@tribulant.com>, relay=tribulant.com[23.22.38.89]:25, delay=41, delays=0.05/0.02/21/20, dsn=5.0.0, status=bounced (host tribulant.com[23.22.38.89] said: 550 No such person at this address. (in reply to RCPT TO command))
Nov 16 17:28:13 dev postfix/cleanup[6658]: 7604CD9F9D: message-id=<20171116172813.7604CD9F9D@app.example.com>
Nov 16 17:28:13 dev postfix/qmgr[6652]: 7604CD9F9D: from=<>, size=2984, nrcpt=1 (queue active)
Nov 16 17:28:13 dev postfix/bounce[6693]: 486FED9F98: sender non-delivery notification: 7604CD9F9D
Nov 16 17:28:13 dev postfix/cleanup[6658]: 76DAED9F9E: message-id=<20171116172813.76DAED9F9E@app.example.com>
Nov 16 17:28:13 dev postfix/qmgr[6652]: 76DAED9F9E: from=<double-bounce@app.example.com>, size=2599, nrcpt=1 (queue active)
Nov 16 17:28:13 dev postfix/bounce[6693]: 486FED9F98: postmaster non-delivery notification: 76DAED9F9E
Nov 16 17:28:13 dev postfix/qmgr[6652]: 486FED9F98: removed
Nov 16 17:28:13 dev postfix/smtp[6659]: 7604CD9F9D: to=<someuser@example>, relay=mx.mailprotect.be[178.208.39.141]:25, delay=0.08, delays=0/0/0.05/0.03, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as C0B5E4401F4)
Nov 16 17:28:13 dev postfix/qmgr[6652]: 7604CD9F9D: removed
Nov 16 17:28:13 dev postfix/pipe[6694]: 76DAED9F9E: to=<bounce@bounce.example.com>, relay=bulkbounce, delay=0.16, delays=0/0.01/0/0.15, dsn=2.0.0, status=sent (delivered via bulkbounce service)
Nov 16 17:28:13 dev postfix/qmgr[6652]: 76DAED9F9E: removed
fqdn: app.example.com
发布于 2017-11-17 17:22:08
现在我明白了发生了什么,答案是显而易见的。
在RFC之后,MTA (应该)始终向发送方发送一条回弹消息(如果设置了返回路径,则从发送方返回)。
添加notify_classes不会改变这种行为,而是在其之上添加行为。(因此第二封邮件被发送)
为了实现我想要的结果,只调用脚本,我删除了notify_classes和bounce_notice_recipient。此外,我还将应用程序更改为始终使用bounce@bounce.example.com添加一个“返回路径”头。
当弹跳发生时,MTA会向FROM或返回路径发送一条回弹消息(现在是bounce@bounce.example.com)。由于这封电子邮件是映射在transport_maps,它得到管道到脚本,没有电子邮件实际上是发送。万岁
https://serverfault.com/questions/883805
复制相似问题