透過 Dovecot 進行 Postfix SASL 驗證 - 我可以在 postfix sql 查詢中使用 SASL 登入嗎?

透過 Dovecot 進行 Postfix SASL 驗證 - 我可以在 postfix sql 查詢中使用 SASL 登入嗎?

我有一個郵件伺服器postfix,在 Debian buster 上運行dovecotmysql

到目前為止,一切工作正常,但我想設定一個場景,其中 SASL 身份驗證的登入名稱與收件者網域的使用者部分不同。

例子:

Login name used for SASL auth: myusername
Sender email address: [email protected]

使用 dovecot 進行身份驗證工作正常,因為我可以將登入名稱用作 dovecot 中的變數。

但在 postfix 實際提交電子郵件之前,我想驗證寄件者地址是否確實屬於登入使用者所有。smtpd_sender_login_mapsmaster.cf 中提交服務的選項,指向 mysql 表。

  -o smtpd_sender_login_maps=proxy:mysql:/etc/postfix/mysql/sender-login-maps.cf

根據postfix的mysql-table手冊(http://www.postfix.org/mysql_table.5.html),唯一可用的變數是 %s、%u、%d - 它們都與寄件者地址相關,即:

%s = [email protected]
%u = sender
%d = domain.com

有沒有辦法使用原來的SASL登入名稱('我的用戶名') 在我的 SQL 查詢中?

答案1

實際上,我發現為此目的不需要存取 sasl auth 使用者名稱。

根據使用者手冊,不應 smtpd_sender_login_maps傳回 sasl 使用者擁有的電子郵件地址 - 它應該傳回擁有寄件者電子郵件地址的 sasl 使用者。

http://www.postfix.org/postconf.5.html#smtpd_sender_login_maps

在所有情況下,表格查找的結果必須是「未找到」或由逗號和/或空格分隔的 SASL 登入名稱清單。

對於此類查詢,不需要 sasl 使用者名稱作為變數。

相關內容