晚安,
我有一个 Postfix 服务器和一个 mysql 数据库,用于地址管理。有一个表映射用户及其邮件地址。例如
|user|[email protected]|
|user|[email protected]|
除此之外,我还有一些服务的本地别名,例如网络论坛([电子邮件保护])
现在我想对 postfix 进行以下配置。如果有人向邮件服务器提交邮件,MAIL FROM:
则应检查邮件头。如果它包含表中属于某个用户的邮件,则如果该用户未通过身份验证,则应拒绝该邮件。如果它属于本地别名,则如果不是由本地主机发送,则应禁止该邮件。
我已经对 postfix 进行了如下配置:
smtpd_sender_restrictions = permit_mynetworks, # allow local networks
reject_unknown_hostname,
reject_unknown_recipient_domain,
reject_unknown_sender_domain,
reject_sender_login_mismatch,
permit_sasl_authenticated
alias_database
(虚拟) 别名在和 中配置virtual_alias_maps
。为了将邮件发送给用户,mysql 通过 检索用户名virtual_mailbox_maps
。
为了将 sasl auth 用户映射到邮件地址列表,smtpd_sender_login_maps
需要配置一个查询,将所有用户返回到相应的邮件地址。
如果我测试这些文件,结果在单一情况下有效,但组合起来却无法按预期工作。
如果我正在测试它并且我未登录,则带有 的邮件会按预期被拒绝,但带有 的邮件将被发送。如果我经过身份验证,我可以使用任何标题。我没有为提交端口配置任何覆盖。MAIL FROM: [email protected]
MAIL FROM: [email protected]
MAIL FROM:
我如何配置限制以使每个用户只能从允许的邮件地址列表发送?