Eu tenho um servidor de e-mail com postfix
e dovecot
rodando mysql
no Debian buster.
Tudo funciona bem até agora, mas eu gostaria de configurar um cenário em que o nome de login para autenticação SASL seja diferente da parte do usuário do domínio do destinatário.
Exemplo:
Login name used for SASL auth: myusername
Sender email address: [email protected]
A autenticação com dovecot funciona bem, pois tenho o nome de login disponível como variável no dovecot.
Mas antes que o postfix realmente envie o e-mail, gostaria de verificar se o endereço do remetente realmente pertence ao usuário que efetuou login.smtpd_sender_login_mapsopção para o serviço de envio em master.cf, apontando para uma tabela mysql.
-o smtpd_sender_login_maps=proxy:mysql:/etc/postfix/mysql/sender-login-maps.cf
De acordo com o manual de tabela mysql do postfix (http://www.postfix.org/mysql_table.5.html), as únicas variáveis disponíveis são %s, %u, %d - todas relacionadas ao endereço do remetente, ou seja:
%s = [email protected]
%u = sender
%d = domain.com
Existe alguma maneira de usar o nome de login SASL original ('meunome de usuário') na minha consulta SQL?
Responder1
Na verdade, descobri que acessar o nome de usuário sasl auth não é necessário para essa finalidade.
De acordo com o manual do usuário, smtpd_sender_login_maps
não deve retornar os endereços de e-mail pertencentes ao usuário sasl - deve retornar o usuário sasl que possui o endereço de e-mail do remetente.
http://www.postfix.org/postconf.5.html#smtpd_sender_login_maps
Em todos os casos, o resultado da pesquisa na tabela deve ser "não encontrado" ou uma lista de nomes de login SASL separados por vírgula e/ou espaço em branco.
Para tal consulta, o nome de usuário sasl não é necessário como variável.