电子邮件捕获全部(域和子域)Postfix

电子邮件捕获全部(域和子域)Postfix

我只想将所有发送至 *@domain.com 和 *@*.domain.com 的电子邮件发送到一个唯一的电子邮件[电子邮件保护]

@runlevel6 有没有办法在虚拟环境中实现正则表达式

cat /etc/postfix/virtual 
@example.com [email protected] 
/[@*].example.com$/ [email protected]

我找到了:

在 main.cf 中

virtual_alias_maps = regexp:/var/spool/postfix/plesk/virtual-sub

在虚拟子系统中

/[@.]example\.tld$/ [email protected]

谢谢运行级别6

答案1

Postfix 支持通过 luser_relay 配置选项使用 catchall 帐户。

请参阅后缀页面luser_relay了解更多信息。

当 local(8) 投递代理发现邮件收件人不存在时,邮件通常会返回给发件人(“用户未知”)。有时需要将不存在的收件人的邮件转发到另一台机器。为此,您可以使用 luser_relay 配置参数指定备用目的地。

如果它不是服务器上所有域的通用名称,则可以使用虚拟别名。请参阅 postfix 页面虚拟别名了解更多信息。该页面的简短描述和代码摘录如下:

使用虚拟别名域,每个托管地址都会被别名为本地 UNIX 系统帐户或远程地址。以下示例显示了如何对 example.com 域使​​用此机制。

/etc/postfix/main.cf:

virtual_alias_domains = example.com ...other hosted domains...
virtual_alias_maps = hash:/etc/postfix/virtual

在/etc/postfix/虚拟:

[email protected] postmaster
[email protected]       joe
[email protected]      jane
# Uncomment entry below to implement a catch-all address
@example.com           jim
...virtual aliases for more domains...

完成这些更改后,运行postmap /etc/postfix/virtualpostfix reload

编辑:我认为你正在寻找的正则表达式是/[@.]example\.com$/ system

您可能需要在 main.cf 中进行其他更改才能支持此功能。请参阅这个帖子了解更多信息。

答案2

这是执行全部捕获的设置,但是针对外部服务器(我使用此服务器作为开发机器的智能主机)。

  • 用您的服务器替换 mail.example.com(我们使用 exchange)
  • 代替[电子邮件保护]所有发送至此信箱的电子邮件的目的地。
  • 将 192.168.0.0 网络替换为您的开发网络

postconf -e recipient_canonical_classes=envelope_recipient
postconf -e recipient_canonical_maps=regexp:/etc/postfix/recipient_canonical_map
postconf -e mynetworks=192.168.0.0/24
postconf -e header_checks=regexp:/etc/postfix/header_checks
postconf -e relayhost=mail.example.com

猫/等/postfix/recipient_canonical_map

/./ [email protected]

相关内容