Postfix: Адрес получателя отклонен: Пользователь неизвестен в локальной таблице получателей

Postfix: Адрес получателя отклонен: Пользователь неизвестен в локальной таблице получателей

Когда я пытаюсь отправить электронное письмо на моем сервере Postfix на адрес в том же домене (например, если имя хоста сервера — mail.example.com, и я пытаюсь отправить электронное письмо на[email protected]), я получаю следующую ошибку в журнале и письмо не доставляется: Recipient address rejected: User unknown in local recipient table. Если я отправляю на адрес в другом домене, у меня нет никаких проблем. Вот мой файл /etc/postfix/main.cf:

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
readme_directory = no
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
myhostname = mail.example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
#myorigin = /etc/mailname
myorigin = $mydomain
mydestination = $mydomain, localhost.$mydomain, localhost
relayhost =
#fake IP address
mynetworks = 127.0.0.0/8 100.837.191.223
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

решение1

Я знаю, что этот вопрос уже устарел, поэтому предполагаю, что на него уже дан удовлетворительный ответ.

У меня была та же проблема, и мне потребовалось некоторое время, чтобы понять, что происходит. Я думаю, что моя ситуация была такой же, как и в первоначальном вопросе.

Postfix должен ретранслироватьвсепочты на другие серверы в интернете, он фактически не получает почту для каких-либо доменов. Поэтому любая почта, отправленная на example.com, должна быть перенаправлена ​​на почтовый сервер example.com. Решение, как объяснил techieb0y, заключается в удалении $mydomain из строки:

mydestination = $mydomain, localhost.$mydomain, localhost

Эта строка сообщает postfix, что все сообщения, отправленные на $mydomain, должны быть получены и сохранены наэтотserver. Это не то, что я хочу, я хочу, чтобы эти сообщения отправлялись на настоящий почтовый сервер example.com. Как только я это понял и удалил example.com, почта заработала так, как я и ожидал. Я публикую это на тот случай, если это объяснение поможет кому-то еще, кто наткнется на этот вопрос в будущем.

решение2

Ошибка довольно красноречива: целевое имя пользователя электронной почты (слева от знака @) не может быть сопоставлено ни локальному пользователю в системе (настройки postfix по умолчанию), ни виртуальному домену (так как ни один из них не настроен изначально). Решение попытаться выполнить это сопоставление контролируется списком доменов в 'mydestination' (плюс любые виртуальные домены). Если эта машина на самом деле является основным MX домена, то у несуществующих пользователей почта сломана. Если этому ящику нужно только отправлять исходящие сообщения, простого удаления целевого домена из mydestination (путем удаления $mydomain из списка) должно быть достаточно — он все равно будет принимать сообщения напрямую для[email protected], но сообщения для[email protected]пройдет процесс поиска MX для доставки в другое место. Вы можете сократить процесс, настроив транспортную карту (для отдельных доменов) или настроив смарт-хост (для всей почты).

решение3

Когда вы отправляете сообщение на свой локальный домен, postfix отвечает за проверку существования получателя. Когда вы отправляете письмо на любой другой домен, postfix не несет такой ответственности.

Вам либо нужно иметь локального пользователя с именем test

useradd -s /bin/bash -d /home/test -U test

или вам нужен псевдоним от test к локальному пользователю в /etc/aliases

echo "test: root" >> /etc/aliases
postalias /etc/aliases

И все должно быть готово.

решение4

в /etc/postfix/main.cfфайл добавляем строку local_recipient_maps =, именно так, с пустым значением (по умолчанию значение активно и непустое, поэтому и нужно добавлять эту строку с пустым значением)

Связанный контент