我们试图使用PostFix来检查发件人的电子邮件地址是否允许发送到特定的电子邮件地址。
另一种描述它的方法是,我希望特定的电子邮件地址只允许来自特定电子邮件地址的传入消息(而不是SMTP登录)。
像这样的东西有用吗?main.cf:
smtpd_recipient_restrictions =
[other restrictions here]
check_sender_access
mysql:/etc/postfix/restricted_senders_to_recipents.cfrestricted_senders_to_recipents.cf:
user = uname
password = pword
hosts = 127.0.0.1
dbname = dbname
#!!!PSEUDOCODE!!!
query = SELECT allowed FROM members WHERE sender = %sender AND recipent = %recipent;这个是可能的吗?如果是那样的话?
我知道MySQL的别名是这样工作的,因为我们已经在使用它了。(http://www.postfix.org/mysql_table.5.html)
发布于 2014-05-06 07:19:18
简单来说,答案可能是否定的。
使用带有每个客户/用户/等访问控制的后缀的smtpd_restriction_classes支持每个发件人/收件人/客户端的限制。根据您的需求,您必须动态地设置smtpd_restriction_classes参数,但它不适用于后缀。
发布于 2016-11-23 03:45:42
似乎你可以在两个部分的过程中完成这件事。
首先,创建一个smtpd_sender_restriction,它是mysql查找那些需要acl的用户类的地址:
smtpd_recipient_restrictions = reject_non_fqdn_sender,
...
mysql:/etc/postfix/protected_users.cf接下来,因为mysql查找将返回一个用户类,所以您可以分配这类用户来进行anohter查找,以决定是否可以发送邮件:
smtpd_recipient_restrictions = reject_non_fqdn_sender,
...
proxy:mysql:/etc/postfix/protected_users.cfwhitelist = check_sender_access代理:mysql:/etc/后缀/Whitelist.cf,拒绝
这两个部分的查找应该可以满足您的需要。
https://serverfault.com/questions/592601
复制相似问题