当被Cluebringer(policyd v2)拒绝时,让postfix不发送退回邮件

我在cluebringer上启用了收件人限制(配额),并且运行良好。 但是,每当有人被扼杀,postfix发回一个退回邮件。

如果某封电子邮件被cluebringer拒绝,我不希望它发回一个退回邮件。 你知道我怎么能做到这一点?

下面给出的是我的postconf -n

$ postconf -n alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases append_dot_mydomain = no biff = no config_directory = /etc/postfix inet_interfaces = all inet_protocols = all mailbox_size_limit = 0 mydestination = myserver.com, localdomain, localhost, localhost.localdomain, localhost myhostname = myhostname.compute.internal mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 myorigin = /etc/mailname readme_directory = no recipient_delimiter = + relayhost = smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) smtpd_discard_ehlo_keywords = silent-discard, dsn smtpd_end_of_data_restrictions = check_policy_service inet:127.0.0.1:10031 smtpd_recipient_restrictions = check_policy_service inet:127.0.0.1:10031 smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtpd_use_tls = yes 

你真的认为Postfix发送了一个反弹吗? 或者你的意思是它拒绝接收消息与5xx代码,然后发送MTA发送反弹? 另外,你没有说policyd是如何configuration的 – 它告诉Postfix是拒绝(5xx)还是DEFER(4xx),我猜你想要后者,这样发送MTA重试,直到用户再次处于配额。

如果我的理解是正确的,你可以改变policyd推迟,或者修改你的configuration,如:

 smtpd_end_of_data_restrictions = defer_if_reject check_policy_service inet:127.0.0.1:10031 smtpd_recipient_restrictions = defer_if_reject check_policy_service inet:127.0.0.1:10031 

编辑:“554 5.7.1:收件人地址拒绝:政策拒绝;邮件计数配额超过”是拒绝SMTP响应,而不是本身反弹。 除了myserver.com之外,还必须有其他一些MTA(例如,如果由于某种原因从雅虎帐户向[email protected]发送电子邮件,则DSN来自Yahoo)。

是的,丢弃邮件当然是“非常规”的,MTA的目的是不这样做,但你可以指定判决:DISCARD in cluebringer)。 请参阅man 5 accesshttp://wiki.policyd.org/accesscontrol 。 没有“discard_if_reject”关键字,但也许你可以让policyd返回DUNNO并在限制结束时放弃。

你可能也想通过pipe道到/ dev / null在procmail黑洞。