如何使用 postfix+dovecot+mysql 为多个域上不存在的用户设置 catch-all

如何使用 postfix+dovecot+mysql 为多个域上不存在的用户设置 catch-all

我已经使用 postfix、dovecot 和 mysql 设置了我的电子邮件服务器,一切正常。我目前在这个服务器上托管了几个域名。现在我想为不存在的用户设置 catch-all,如下所示:

[电子邮件保护]—>[电子邮件保护]
[电子邮件保护](不存在) —>[电子邮件保护]
[电子邮件保护]—>[电子邮件保护]
[电子邮件保护](不存在) —>[电子邮件保护]

谢谢

答案1

您需要为所有人指定一个别名,这可以通过 @ 别名来实现

从我的 Postfix 管理员别名表中

address: @domain.com
goto: [email protected]
domain: domain.com
active: 1

任何尚未定义的电子邮件都将属于该别名。

作为额外的奖励,您可能想要创建一个别名并拒绝其电子邮件。这可以通过 mysql 收件人映射中的联合查询来实现。

smtpd_recipient_restrictions = check_recipient_access mysql:/etc/postfix/sql/mysql_virtual_recipient_access.cf

query = select case active when 0 then 'REJECT' when 1 then 'OK' end as access from alias where address  = '%s' union select case active when 0 then 'REJECT' when 1 then 'OK' end as access from mailbox where username = '%s'

这将允许您创建同样拒绝电子邮件的别名用户。

相关内容