我有一个带有postfix、dovecot和mysql的邮件服务器运行在Debian上。
到目前为止,一切都很好,但我希望设置一个场景,即SASL的登录名与接收域的用户部分不同。
示例:
Login name used for SASL auth: myusername
Sender email address: sender@domain.com使用dovecot的身份验证工作良好,因为我的登录名可以作为dovecot中的一个变量使用。
但是在postfix实际提交电子邮件之前,我想验证发件人的地址是否真正属于登录的用户。因此,我将smtpd_sender_login_maps选项添加到master.cf中的提交服务中,定位到mysql表。
-o smtpd_sender_login_maps=proxy:mysql:/etc/postfix/mysql/sender-login-maps.cf根据mysql-table手册的后缀(http://www.postfix.org/mysql_table.5.html),唯一可用的变量是%s、%u、%d -这些变量都与发件人地址有关,即:
%s = sender@domain.com
%u = sender
%d = domain.com有没有方法在我的SQL查询中使用原始的SASL登录名('myusername')?
发布于 2021-01-04 10:38:40
实际上,我发现访问sasl / auth用户名是不需要的。
根据用户手册,smtpd_sender_login_maps不应该返回sasl用户拥有的电子邮件地址-它应该返回拥有发件人电子邮件地址的sasl用户。
http://www.postfix.org/postconf.5.html#smtpd_发件人_登录_地图
在所有情况下,表查找的结果都必须是“找不到”,或者用逗号和/或空格分隔的SASL登录名列表。
对于这样的查询,sasl用户名不需要作为变量。
https://serverfault.com/questions/1048386
复制相似问题