创建后缀别名“all@domain.tld”以发送给域的所有用户

创建后缀别名“all@domain.tld”以发送给域的所有用户,第1张

概述我正在使用Postfix Dovecot和 MySQL数据库作为后端,使用PostfixAdmin来管理用户和域.现在我正在寻找一种简单且自动化的方法来定义模式all@domain.tld的每个域别名,并将解析给给定域的所有用户.我想设置一次,即使添加或删除帐户,它仍将按预期工作 – 因此手动创建包含帐户列表的文件,或使用某些邮件列表是没有选项的. 从数据库中检索给定域的所有现有用户应该非常容易: 我正在使用Postfix Dovecot和 MySQL数据库作为后端,使用Postfixadmin来管理用户和域.现在我正在寻找一种简单且自动化的方法来定义模式all@domain.tld的每个域别名,并将解析给给定域的所有用户.我想设置一次,即使添加或删除帐户,它仍将按预期工作 – 因此手动创建包含帐户列表的文件,或使用某些邮件列表是没有选项的.

从数据库中检索给定域的所有现有用户应该非常容易:

SELECT username  FROM vmail WHERE domain='%d';

(%d是域的占位符).但是,我怎么能告诉postfix这样做的邮件是针对all@domain.tld的邮件,当然只有当这样的邮件来自可靠的来源时(permit_sasl_authenticated,permit_mynetworks?)?

我现在用谷歌搜索了几个小时,但我发现的只是“全能”(与我想要的完全相反),基于shell脚本的解决方案(走在resp.域名目录下),或者使用邮件 – 列表方法 – 这些都不符合我的需求.

解决方法 您可以使用virtual_alias_maps定义别名all@example.com.这里是 virtual 5使用的格式.
pattern address1,address2,address3,...

因此,您需要构造查询以连接所有行.取自此主题:Can I concatenate multiple MySQL rows into one field?,您可以使用此查询.

SELECT GROUP_CONCAT(CASE WHEN active='1' THEN username ELSE NulL END separator ',')  FROM vmail WHERE DOMAIN='%d'   AND '%s'='all@%d'

这需要转到MysqL_virtual_alias_maps.cf,并且可以使用UNION附加到现有查询 – 因此结果如下所示:像这样:

query = SELECT goto FROM alias WHERE address='%s' AND active = '1' UNION SELECT GROUP_CONCAT(CASE WHEN active='1' THEN username ELSE NulL END separator ',')  FROM vmail WHERE DOMAIN='%d'   AND '%s'='all@%d'

(可能需要全部在一行 – 这里的格式化只是为了使它更容易阅读).

要仅允许permit_mynetworks和permit_sasl_authenticated,请按以下顺序放置限制

smtpd_recipIEnt_restrictions =  ....                        permit_mynetworks                        permit_sasl_authenticated                        check_recipIEnt_access regexp:/etc/postfix/restrict.all.alias                        reject_unauth_destination

在/etc/postfix/restrict.all.alias中,定义

/^all@/  REJECT access denIEd

当从mynetworks发送或由经过身份验证的用户发送时,它将允许向所有@域发送电子邮件,但在此之后拒绝.

总结

以上是内存溢出为你收集整理的创建后缀别名“all@domain.tld”以发送给域的所有用户全部内容,希望文章能够帮你解决创建后缀别名“all@domain.tld”以发送给域的所有用户所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1101888.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存