1 最后由 saic1985 (2016-11-16 15:37:01) 编辑

主题: Amavisd中的D_BOUNCE和D_DISCARD有什么区别?

==== 必填信息。没有填写将不予回复 ====
- iRedMail 版本号:0.9.5-1
- 使用哪个数据库存储用户帐号(OpenLDAP,MySQL,PostgreSQL):OpenLDAP
- 使用的 Linux/BSD 发行版名称及版本号:Centos7
- 与您的问题相关的日志信息:无错误日志
====

Amavisd中对不同类型的风险邮件的定义了四种处理方法:D_PASS,D_BOUNCE,D_REJECT,D_DISCARD。

D_PASS很好理解,直接放行;
D_REJECT是拒收,发件方会收到退信;
但D_BOUNCE和D_DISCARD在处理上有什么区别?

看字面意思一个是弹回,一个是销毁,从文档中看到,D_BOUNCE是反馈给发件方MTA一个2XX的成功状态,并发一个“未投递成功”的响应给发件方,而D_REJECT是反馈给发件方MTA一个5XX的拒绝状态,D_DISCARD则是直接销毁邮件,不给任何反馈。

从实际测试效果来看,D_BOUNCE和D_DISCARD两种处理方式,收件方都没有接收到邮件,发件方也未收到退信,投递状态也就是250 OK,除了在日志中能体现出来一个是BOUNCE了,一个是DISCARD了,似乎没有什么区别?

请了解的朋友解释一下,谢谢!

D_BOUNCE:
Nov 16 15:29:00 Mailserver postfix/smtp[91389]: B7F4C46CCB11: to=<test@example.com>, relay=127.0.0.1[127.0.0.1]:10026, delay=0.57, delays=0.18/0.02/0.01/0.35, dsn=2.5.0, status=sent (250 2.5.0 Ok, id=87004-01, DISCARD(bounce.suppressed))

D_DISCARD:
Nov 16 15:30:28 Mailserver postfix/smtp[91389]: 748EA46CCB12: to=<test@example.com>, relay=127.0.0.1[127.0.0.1]:10026, delay=0.4, delays=0.16/0/0.01/0.22, dsn=2.7.0, status=sent (250 2.7.0 Ok, discarded, id=91928-01 - BANNED: .dat,test.xlsx)

回复: Amavisd中的D_BOUNCE和D_DISCARD有什么区别?

参考:
https://blog.bravi.org/?p=683

回复: Amavisd中的D_BOUNCE和D_DISCARD有什么区别?

ZhangHuangbin 写道:

参考:
https://blog.bravi.org/?p=683

看了一下,文档里说的是D_BOUNCE会发送一个“未投递成功”的通知给发件方,而D_REJECT是会发送一个“拒绝”的响应给上游MTA,D_DISCARD则是直接销毁邮件,没搞明白发件方和上游MTA具体有什么区别。

仔细研究了下日志,D_BOUNCE处理方式中我的MTA在BOUNCE之后向发件地址发送了一份“邮件”(也许是别的什么),可能这就是那个所谓的”未投递成功“的通知,但发件人实际并不会收到邮件。