将某些域和特定域上的某些用户列入白名单作为 Zentyal/Postfix 的目的地

将某些域和特定域上的某些用户列入白名单作为 Zentyal/Postfix 的目的地

我一直使用 sendmail 作为 MTA,并使用 SquirrelMail 作为网络邮件。我曾经使用以下设置来限制 SquirrelMail 中的收件人。SquirrelMail 有一个名为 Recepientrestrictions 的插件,可以检查两个 php 文件

  1. Config.PHP- 包含我的域用户可以发送邮件的不同域的列表(系统管理员和公司主管可以向任何人发送邮件)
  2. recepientrestrictions.php- 包含特定地址列表,例如[电子邮件保护]或者[电子邮件保护]我的域用户可以向谁发送邮件。(系统管理员和公司董事可以向任何人发送邮件)

现在的问题是:

我正在迁移到 Zentyal 作为电子邮件服务器。Zentyal 在后台使用 Postfix,并使用 Roundcube 进行网络邮件。

我得到了一个部分解决方案,它是我域中所有用户的一般规则(不能分开系统管理员/主管向互联网上的任何人发送邮件),它限制传递到特定域的邮件,如下所示。

  1. 将其添加到 main.cf 中:

    smtpd_recipient_restrictions = check_recipient_access 
                hash:/etc/postfix/recipient_domains, reject 
    
  2. /etc/postfix/recipient_domains是白名单文件:

    mycompany.com OK 
    anotherdomain.com OK 
    
  3. 生成哈希文件:postmap /etc/postfix/recipient_domains

  4. 重新启动 postfix 服务。

即使在此之后,它也不会阻止发送到[电子邮件保护]或者[电子邮件保护]。我还想借助白名单文件向网络邮件提供商的几个邮件 ID 发送邮件。例如

[email protected] OK
[email protected] OK
[email protected] OK

简而言之,该方案如下:

  • Group1 向地球上的任何人发送邮件。
  • Group2 通过两个白名单发送邮件 1) 根据域 2) 特定的网络邮件用户。

问题是如何实现这个方案?

答案1

要检查用户对邮件地址的访问权限,请使用smtpd_sender_login_maps范围:

smtpd_sender_login_maps = hash:/etc/postfix/sender_login_maps

使用如下条目:

[email protected] bob
[email protected] alice
@bob.example.com bob

第二列是登录名(用于身份验证)。有关更多信息,请参阅文档。此示例使用哈希表,但您也可以使用数据库或任何您想要使用的东西。

相关内容