Я пытаюсь отправить электронное письмо на адрес своего собственного ящика ([email protected]), а postfix пытается доставить[email protected]- имя пользователя заменяется на цифру 1. Это сообщение включено в ответ 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)
При поиске в журнале почты первый результат, относящийся к[email protected]это:
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))
[email protected]существует и может отправлять почту наружу. [email protected]очевидно, не существует.
Так почему же Postfix постоянно доставляет всю почту[email protected]?
решение1
Запуск doveconf -n
проверки подтверждения выявил следующую строку:
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf, mysql:/etc/postfix/mysql-virtual-email2email.cf
Проверка /etc/postfix/mysql-virtual-email2email.cf
выявила реальную ошибку:
query = SELECT 1 FROM virtual_users WHERE email='%s'
Итак, после тщательного поиска в базе данных, он выберет число 1 для любого пользователя, где адрес электронной почты был заданным адресом. Чтобы исправить это, измените 1
запрос на фактическое правильное имя столбца, которое использует ваша таблица.