在 Postfix 中悄悄地将电子邮件发送到特定的无效域?

9 postfix

让 Postfix 静默将电子邮件发送到特定无效域的最佳方法是什么?

由于目前无法以其他方式处理的原因,我们的邮件服务器收到了大量 $userid@BLAH 形式的地址的电子邮件,其中 @BLAH 始终是该值,而 $userid 是由发件人以编程方式生成的。允许发件人邮件服务器通过我们的邮件服务器进行中继,但由于 BLAH 不是有效域,因此邮件会因“找不到主机或域名。name=BLAH type=MX 的名称服务错误:找不到主机,请尝试再次”。显然 header_checks 不起作用,因为在主机名查找后处理得很好。

我想防止它们进入队列,即使它们在几次重试后最终会老化,而只是默默地丢弃它们。(最终我们会解决源问题,但这可能不会很快。)

更新
我调整了 Michael 的建议,因为尽管有别名,虚拟邮箱配置还是传送到邮箱而不是 /dev/null。但是,我已经在虚拟别名另一个域,所以我只是将 BLAH“域”virtual_alias_domains添加@BLAH BLAH到并添加到/etc/postfix/virtual,后映射,以及与新/etc/aliases条目一起,它就像一个魅力。

更新 2
我突然想到,通过将 BLAH 添加到virtual_alias_domains, header_check 规则现在应该可以工作,避免了对 alias 中virtual别名的需要aliases,并且测试确实证明了这一点。这有一个额外的好处,即电子邮件现在被记录为丢弃物,因此被我们的 SMTP 服务器指标图的 Collectd 尾部插件配置中的现有模式拾取。

Mic*_*ton 11

首先,您需要接受不存在域的邮件,例如将其添加到virtual_mailbox_domains.

然后,您需要创建一个在virtual_mailbox_maps本地交付的通用地址,例如:

@example.com    throwaway
Run Code Online (Sandbox Code Playgroud)

最后,您需要为throwawayin创建一个本地别名,/etc/aliases以便将邮件发送到/dev/null,例如:

throwaway       /dev/null
Run Code Online (Sandbox Code Playgroud)

Postmap 并根据需要重新加载 postfix。


Dav*_*win 5

要静默删除外发电子邮件,您还可以使用传输映射文件

transport_maps = hash:/etc/postfix/transport_maps
Run Code Online (Sandbox Code Playgroud)

包含如下条目:

email-to-bin@example.com discard:
@domain-to-bin.com discard: 
Run Code Online (Sandbox Code Playgroud)