Postfix SASL-Authentifizierung über Dovecot – Kann ich den SASL-Anmeldenamen in meinen Postfix-SQL-Abfragen verwenden?

Postfix SASL-Authentifizierung über Dovecot – Kann ich den SASL-Anmeldenamen in meinen Postfix-SQL-Abfragen verwenden?

Ich habe einen Mailserver mit postfix, dovecotder mysqlauf Debian Buster läuft.

Bisher funktioniert alles einwandfrei, aber ich möchte ein Szenario einrichten, bei dem sich der Anmeldename für die SASL-Authentifizierung vom Benutzerteil der Empfängerdomäne unterscheidet.

Beispiel:

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

Die Authentifizierung mit Dovecot funktioniert einwandfrei, da ich den Anmeldenamen als Variable in Dovecot zur Verfügung habe.

Aber bevor Postfix die E-Mail tatsächlich absendet, möchte ich überprüfen, ob die Absenderadresse wirklich dem angemeldeten Benutzer gehört. Daher habe ich densmtpd_sender_login_mapsOption für den Übermittlungsdienst in master.cf, die auf eine MySQL-Tabelle verweist.

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

Laut dem MySQL-Tabellenhandbuch von Postfix (http://www.postfix.org/mysql_table.5.html), sind die einzigen verfügbaren Variablen %s, %u, %d – die sich alle auf die Absenderadresse beziehen, d. h.:

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

Gibt es eine Möglichkeit, den ursprünglichen SASL-Anmeldenamen ('mein Benutzername') in meiner SQL-Abfrage?

Antwort1

Tatsächlich habe ich herausgefunden, dass der Zugriff auf den SASL-Auth-Benutzernamen für diesen Zweck nicht erforderlich ist.

Laut Benutzerhandbuch smtpd_sender_login_mapssollten nicht die E-Mail-Adressen des SASL-Benutzers zurückgegeben werden, sondern der SASL-Benutzer, dem die E-Mail-Adresse des Absenders gehört.

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

In allen Fällen muss das Ergebnis der Tabellensuche entweder „nicht gefunden“ oder eine durch Komma und/oder Leerzeichen getrennte Liste von SASL-Anmeldenamen sein.

Für eine solche Abfrage wird der SASL-Benutzername als Variable nicht benötigt.

verwandte Informationen