Estou tentando enviar um endereço de e-mail em minha própria caixa ([e-mail protegido]), e o postfix está tentando entregar para[e-mail protegido]- o nome de usuário é substituído pelo número 1. Esta mensagem está incluída na resposta do mailer-daemon:
<[email protected]> (expanded from <[email protected]>): host mail.domain.tld[private/dovecot-lmtp] said: 550 5.1.1 <[email protected]> User doesn't exist: [email protected] (in reply to RCPT TO command)
Pesquisando o log de e-mail, o primeiro resultado que se refere a[e-mail protegido]é isto:
Oct 19 13:41:44 servername postfix/lmtp[16232]: A547EC29C2: to=<[email protected]>, orig_to=<[email protected]>, relay=mail.domain.tld[private/dovecot-lmtp], delay=0.19, delays=0.16/0.01/0.01/0.02, dsn=5.1.1, status=bounced (host mail.domain.tld[private/dovecot-lmtp] said: 550 5.1.1 <[email protected]> User doesn't exist: [email protected] (in reply to RCPT TO command))
[e-mail protegido]existe e pode enviar e-mails para fora. [e-mail protegido]não existe, obviamente.
Então, por que o Postfix entrega repetidamente todas as mensagens para[e-mail protegido]?
Responder1
Correndo doveconf -n
para verificar a confirmação revelou a seguinte linha:
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf, mysql:/etc/postfix/mysql-virtual-email2email.cf
A verificação /etc/postfix/mysql-virtual-email2email.cf
revelou o erro real:
query = SELECT 1 FROM virtual_users WHERE email='%s'
Assim, após pesquisar cuidadosamente no banco de dados, ele selecionaria o número 1, para qualquer usuário cujo e-mail fosse o endereço informado. Para corrigir isso, altere 1
a consulta para o nome de coluna adequado que sua tabela usa.