Postfix 将所有传入邮件限制到某些域,然后允许所有特定用户地址

Postfix 将所有传入邮件限制到某些域,然后允许所有特定用户地址

我们使用 Postfix 作为员工的公司电子邮件地址...所有格式均为[电子邮件保护]

基本上,我想限制所有传入邮件到这些地址,只允许来自 @example.com 域的电子邮件。

我认为很简单,但是有少数主管地址需要不受限制(能够接收来自任何域的电子邮件)。

我找到的所有答案似乎都不能回答这个问题(尽管我在处理电子邮件设置方面确实很弱)

/etc/postfix/main.cf 的代码片段:

smtpd_recipient_restrictions = 
    permit_sasl_authenticated, 
    permit_mynetworks, 
    reject_unauth_destination, 
    check_sender_access hash:/etc/postfix/access, 
    reject

答案1

您可以使用限制类。请参阅:

针对你的情况

现在我们必须创建两个类,第一个是主管类,第二个是公司其他成员类。

设置

定义 smtpd_restriction_classess主配置文件

smtpd_restriction_classes = mysupervisor

在中设置 smtpd_recipient_restrictions主配置文件,将此行放在check_sender_access hash:/etc/postfix/access,

check_recipient_access hash:/etc/postfix/mycompany.rules

此文件/etc/postfix/mycompany.rules将执行决策逻辑来选择属于该mysupervisor类别的地址。因此内容是

[email protected]    mysupervisor
[email protected]    mysupervisor

然后为 mysupervisor 类定义规则主配置文件,因此 postfix 将允许所有地址。

mysupervisor = permit

要检查电子邮件是否来自公司域(example.com),请check_sender_access hash:/etc/postfix/insiders在后面设置规则check_recipient_access hash:/etc/postfix/mycompany.rules/etc/postfix/insiders

example.com OK

现在,主配置文件已经成為

smtpd_restriction_classes = mysupervisor
mysupervisor = permit
smtpd_recipient_restrictions = 
    permit_sasl_authenticated, 
    permit_mynetworks, 
    reject_unauth_destination, 
    check_sender_access hash:/etc/postfix/access,
    check_recipient_access hash:/etc/postfix/mycompany.rules,
    check_sender_access hash:/etc/postfix/insiders
    reject

怎么运行的

对于所有电子邮件,Postfix 将应用限制,直到

check_sender_access hash:/etc/postfix/access,

之后将根据 对该电子邮件进行检查mycompany.rules。如果收件人是主管电子邮件,则允许它,否则 postfix 将执行最后的限制/etc/postfix/insiders。如果发件人是 @example.com,则允许它,否则拒绝它。

相关内容