Назад | Перейти на главную страницу

Постфикс: адрес получателя отклонен: пользователь неизвестен в локальной таблице получателей, хотя он существует

Я уже довольно долго гуглил и не могу найти хорошего объяснения следующей проблемы.

Я получаю следующую ошибку при попытке отправить письмо на адрес user@server.example.de

Jul 23 15:24:30 vslpam10 postfix/smtpd[7970]: connect from relay.subdomain.example.de[<IP>]
Jul 23 15:24:30 vslpam10 postfix/smtpd[7970]: B08A1C4B0: client=relay.subdomain.example.de[<IP>]
Jul 23 15:24:30 vslpam10 postfix/cleanup[7973]: B08A1C4B0: message-id=<645638F41810994799AADD85BDB1C38F65866EEE@somedomain.example.de>
Jul 23 15:24:30 vslpam10 postfix/smtpd[7970]: disconnect from relay.subdomain.example.de[<IP>]
Jul 23 15:24:30 vslpam10 postfix/qmgr[7943]: B08A1C4B0: from=<sender@example.de>, size=14053, nrcpt=1 (queue active)
Jul 23 15:24:30 vslpam10 postfix/smtp[7974]: B08A1C4B0: to=<user@server.example.de>, relay=relay.subdomain.example.de[<IP>]:25, delay=0.06, delays=0.03/0.01/0/0.02, dsn=5.1.1, status=bounced (host relay.subdomain.example.de[<IP>] said: 550 5.1.1 <user@server.example.de>: Recipient address rejected: User unknown in local recipient table (in reply to RCPT TO command))
Jul 23 15:24:30 vslpam10 postfix/cleanup[7973]: BE364C55B: message-id=<20120723132430.BE364C55B@server.example.de>
Jul 23 15:24:30 vslpam10 postfix/bounce[7976]: B08A1C4B0: sender non-delivery notification: BE364C55B
Jul 23 15:24:30 vslpam10 postfix/qmgr[7943]: BE364C55B: from=<>, size=16447, nrcpt=1 (queue active)
Jul 23 15:24:30 vslpam10 postfix/qmgr[7943]: B08A1C4B0: removed
Jul 23 15:24:30 vslpam10 postfix/smtp[7974]: BE364C55B: to=<sender@example.de>, relay=relay.subdomain.example.de[<IP>]:25, delay=0.02, delays=0/0/0/0.01, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as C124512C5D4)
Jul 23 15:24:30 vslpam10 postfix/qmgr[7943]: BE364C55B: removed

Однако Пользователь существует:

finger user
Login: user                          Name: technical User

Postconf показывает следующее

(postconf -d; postconf -d; postconf -n; ) | sort | uniq -u
alias_maps = hash:/etc/aliases                                                                                                                            allow_mail_to_commands = alias,forward,include
allow_mail_to_files = alias,forward,include
biff = no
canonical_maps = hash:/etc/postfix/canonical
daemon_directory = /usr/lib/postfix
html_directory = /usr/share/doc/packages/postfix/html
inet_protocols = all
local_recipient_maps = unix:passwd.byname $alias_maps
mailbox_size_limit = 0
manpage_directory = /usr/share/man
masquerade_exceptions = root
myhostname = server.example.de
mynetworks = <IPs>
readme_directory = /usr/share/doc/packages/postfix/README_FILES
relocated_maps = hash:/etc/postfix/relocated
sample_directory = /usr/share/doc/packages/postfix/samples
sender_canonical_maps = hash:/etc/postfix/sender_canonical
setgid_group = maildrop
smtpd_sender_restrictions = hash:/etc/postfix/access
transport_maps = hash:/etc/postfix/transport
virtual_alias_domains = hash:/etc/postfix/virtual
virtual_alias_maps = hash:/etc/postfix/virtual

Есть ли у кого-нибудь объяснение такого поведения?

С уважением

Если postfix настроен на прием почты для определенного места назначения (как установлено в mydestination), также должен существовать допустимый псевдоним или запись в почтовом ящике для этого пользователя.

Вместо этого вы хотите перенаправить это письмо в другую систему, чтобы пользователь не существовал.

Есть два решения этой проблемы: плохое и хорошее.

Плохое решение просто реализовать: переключите relay.example.com на relay_domains и убедитесь, что relay_recipient_maps пусто:

relay_domains = relay.example.com
relay_recipient_maps = 

Это означает, что все получатели для relay.example.com будут приняты, поэтому вы получите много спама.

В право способ сделать это - установить relay_recipient_maps в список действительных адресов в домене ретрансляции.

EDIT: drat, я забыл, что вы сказали пользователю делает существует.

В этом случае происходит следующее: вы не добавили реле. subdomain в mydestination, а mydestination (и ТОЛЬКО mydestination) не подчиняется parent_domain_matches_subdomains, конкретно.

Так что вы можете решить эту проблему, добавив реле. поддомен в mydestination явно, предполагая, что relay. домен транспортируется (5) до локальной доставки.