Postfix: адреса отримувача відхилена: користувач невідомий у місцевій таблиці одержувачів


30

Коли я намагаюся надіслати електронний лист на своєму сервері Postfix на адресу в тому ж домені (наприклад, якщо ім'я хоста сервера - mail.example.com, і я намагаюся надіслати електронний лист на test@example.com), я отримую наступне повідомлення про помилку в журналі та адресу електронної пошти не буде доставлено: 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

Я раніше стикався з цим, коли сервери з будь-якої причини не встановили правильних імен хостів. Чи налаштовано ваш домен mail.example.comяк запис MX? Це справді сервер mail.example.com?
Берт

Відповіді:


42

Я знаю, що це питання трохи старе, тому я припускаю, що на нього вже відповіли задовільно.

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

Postfix повинен ретранслювати всю пошту на інші сервери в Інтернеті, він фактично не отримує пошту для жодних доменів. Таким чином, будь-яку пошту, надіслану на example.com, слід переслати на поштовий сервер example.com. Рішення, як пояснено b techieb0y, полягає у видаленні $ mydomain з рядка:

mydestination = $mydomain, localhost.$mydomain, localhost

Цей рядок повідомляє postfix, що будь-які повідомлення, надіслані на $ mydomain, потрібно отримувати та зберігати на цьому сервері. Це не те, що я хочу, я хочу, щоб ці повідомлення надсилалися фактичному серверу пошти, наприклад.com. Як тільки я зрозумів це і видалив example.com, пошта працювала так, як я очікував. Я публікую це з випадковою ситуацією, що це пояснення допомагає комусь іншому, хто натрапить на це питання в майбутньому.


18

Помилка є досить самоописовою: цільове ім'я електронної пошти (зліва від знаку @) не може бути відображено до локального користувача в системі (налаштування постфіксу за замовчуванням), а також до віртуального домену (оскільки жодне не налаштовано поза ящик). Рішення спробувати виконати це відображення контролюється списком доменів у «мідестинації» (плюс будь-які віртуальні домени). Якщо ця машина насправді є основним MX домену, то користувачі, які не існують, зламали пошту. Якщо це поле потрібно лише для надсилання вихідних повідомлень, достатньо просто видалити цільовий домен з мідестинації (видаливши $ mydomain зі списку) - він все одно буде приймати повідомлення безпосередньо для user@hostname.domain.tld, але повідомлення для користувача @ domain.tld пройде процес пошуку MX для доставки в інше місце.


1
ти врятував мені день, я зійшов з розуму ... чому я маю для себе двох користувачів, tstaerk і thorsten;)
Thorsten Staerk

5

Коли ви надсилаєте повідомлення на свій локальний домен, постфікс відповідає за перевірку наявності одержувача. Коли ви надсилаєте електронний лист у будь-який інший домен, постфікс не несе такої відповідальності.

Вам або потрібно мати місцевого користувача, який називається тестом

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

або вам потрібен псевдонім від тесту до місцевого користувача в / etc / псевдонімах

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

Ви повинні бути все налаштовані.


Чи є спосіб обійти цю перевірку, щоб мені не потрібно було створювати користувача для кожної людини, на яку я надішлю електронний лист? Я не хочу використовувати цей сервер як наш основний поштовий сервер, просто для надсилання вихідних електронних листів із програми, коли виникають помилки. Я вважаю за краще не оновлювати сервер щоразу, коли хочу додати нового одержувача для електронної пошти програми.
Тай Квадрат

Скажімо, ви хочете надіслати електронний лист на "administrator@domainz.com", що вам потрібно зробити, це переконатися, що ваш місцевий поштовий індекс НЕ не відповідає "domainz.com", інакше він спробує перевірити користувача на місцевому рівні. Отже, встановіть директиву "mydomain" на щось інше, як-от "mydomain = local.server", а поштовий індекс надішле ваш електронний лист на сервер, відповідальний за "domainz.com"
Julien Vehent

1

Тож у мене є подібна проблема, і я її ще не зовсім зрозумів, але це повинно рухати вас у правильному напрямку:

http://www.postfix.org/STANDARD_CONFIGURATION_README.html

Подивіться на розділ «Постфікс на нульовому клієнті» - я думаю, що саме цього ви хочете. Я також спробував встановити local_recipient_maps налаштування, як зазначено на веб-сайті postfix на сторінці: LOCAL_RECIPIENT_README.html

Обидві ланки повинні робити те, що ми тут шукаємо, але я не можу змусити їх працювати. Коли я виконую повну інсталяцію клієнта, спроба телнету для надсилання тестового електронного листа SMTP не працює. Я отримую "telnet: підключення до адреси 97.74.92.30: Підключення відмовлено". Встановлюючи локальну карту одержувача, пошук у команді RCPT TO: не видає повідомлення про помилку, як це було раніше, але після надсилання електронної пошти (виглядає нормально), повідомлення електронної пошти насправді не надсилається, і в поштовому журналі є помилка:

"550-поштова скринька невідома. Або немає поштової скриньки, пов’язаної з цим 550-іменем, або ви не маєте права на його перегляд. 550 5.1.1 Невідомий користувач"

Дайте мені знати, якщо вам пощастить більше.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.