![限制谁可以发送到电子邮件地址](https://linux22.com/image/44986/%E9%99%90%E5%88%B6%E8%B0%81%E5%8F%AF%E4%BB%A5%E5%8F%91%E9%80%81%E5%88%B0%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%E5%9C%B0%E5%9D%80.png)
我想这样做,只有某些发件人:地址可以发送到运行 Postfix 的 Ubuntu 系统上的电子邮件地址(邮件列表)。
了解手册中的 Postfix 需要大量知识,因此我希望获得一个可以使用的完整配方。目前,这就是我所拥有的:
/etc/postfix/main.cf:
smtpd_recipient_restrictions =
check_recipient_access hash:/etc/postfix/protected_destinations
smtpd_restriction_classes = insiders_only
insiders_only = check_sender_access hash:/etc/postfix/insiders, reject
/etc/postfix/protected_destinations:
[email protected] insiders_only
/etc/postfix/insiders:
[email protected] OK
[email protected] OK
这给出:
fatal: parameter "smtpd_recipient_restrictions": specify at least one working instance of: check_relay_domains, reject_unauth_destination, reject, defer or defer_if_permit
我愿意接受任何建议。它不一定是 Postfix。它可以是 procmail 或任何其他标准解决方案。
注意:收件人是邮件列表,因此在系统帐户上没有用户帐户。因此任何解决方案都必须在没有帐户的情况下工作。
当前邮件列表实施
/etc/postfix/virtual:
[email protected] [email protected], user2.example.com, ...
答案1
您是否已阅读并理解错误消息?你应该有类似的东西
smtpd_recipient_restrictions =
check_recipient_access hash:/etc/postfix/protected_destinations,
permit_mynetworks,
reject_unauth_destination
postconf -d
...这是您在此处随机 Debian 盒子上的输出前面的规则。
答案2
我从来没有在 postfix 中这样做过,所以我不知道所有内容的语法,但是,当您使用散列数据库(并且在hash:
文件名前面)时,您需要实际散列文件来创建数据库,来自后缀文档:
“hash:table”中使用的数据库名称是不带“.db”后缀的数据库文件名。
您是否postmap
在文件上运行来创建这些数据库(抱歉,但我不记得postmap
调用应该是什么样子,但我认为这只是postmap <file>
(当您想创建时<file>.db
))。
答案3
限制发送电子邮件地址 默认情况下,在您的域中拥有 Gmail 帐户的用户可以向任何其他电子邮件地址发送邮件或从任何其他电子邮件地址接收邮件。但是,在某些情况下,您可能希望限制用户可以与之交换邮件的电子邮件地址。例如,学校可能希望允许其学生与教师和其他学生交换邮件,但不允许与校外的人交换邮件。
使用限制传递设置仅允许从您指定的地址或域发送或接收电子邮件。添加限制传递设置后,用户无法与除授权者之外的任何人通信。