exim. 如何停止发送退回邮件

exim. 如何停止发送退回邮件

我有 smtp 服务器 exim。我想禁止在电子邮件发送到不存在的地址时发送退回邮件。我在配置中的 acl 开头添加了以下内容:


    begin acl
    acl_check_rcpt:
         deny   domains = +local_domains
         message = Can't verify recipient
         !verify  = recipient

但它没有帮助我。

在日志中可以看到正在工作的路由器:


rcpt_check_router:
driver = redirect
allow_fail
no_verify
data = "${if eq{}{${lookup mysql{ SQLUSR }}}{:fail: unknown local user}{$local_part@$domain} }"

当 :fail: 被 :blackhole: 取代时


rcpt_check_router:
driver = redirect
allow_fail
no_verify
data = "${if eq{}{${lookup mysql{ SQLUSR }}}{:blackhole: unknown local user}{$local_part@$domain} }"

没有退回消息。但 Exim 收到消息。

如何使用:fail:而不从邮件传递系统向发件人发送电子邮件?

答案1

您的 ACL 将通知发送服务器该地址未被接受。如果您想避免退回无效地址,则需要在这种情况下接受。或者,您可以推迟,这将导致发送服务器重新排队该消息。大多数垃圾邮件机器人不会重试。

如果您不退回或推迟到合法发件人,您可能会收到大量曾经有效的邮件地址。使用标准配置,拒绝发件人时发送的任何邮件都由发送服务器发送,而不是由 Exim 发送。接受邮件后退回邮件会导致反向散射垃圾邮件。

如果您接受所有发往本地域的邮件,则应配置路由器以将邮件发送到无效的电子邮件地址。如果路由器设置错误,您可能会丢弃有效的电子邮件。如果您接受,路由器似乎应该可以正常工作。但是,如果数据库调用失败,您可能会将合法邮件拒之门外。

相关内容