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

Postfix игнорирует записи MX домена

На моем выделенном сервере у меня установлен Postfix для отправки электронной почты через веб-сайты. Один из моих клиентов размещает свою электронную почту на стороннем сервере, поэтому в домене настроены записи MX.

Однако при отправке любых писем Postfix с сервера они не получают их. Я думаю, поскольку домен указывает на сам сервер, он пытается отправить почту самому себе, но на сервере нет ничего, что могло бы обрабатывать электронную почту для этого домена. (Есть почтовые аккаунты для другого домена, которые работают нормально.)

Как заставить Postfix использовать записи MX домена для отправки электронной почты? Сервер - Ubuntu 8.10 со стандартным стеком LAMP. У меня установлен Webmin и панель управления под названием «Матрица» предоставляется хостом.

РЕДАКТИРОВАТЬ: если я пытаюсь отправить электронное письмо со своего собственного адреса, я получаю сообщение об ошибке от системы доставки почты со следующей ошибкой:

<client@mydomain.co.uk>: user unknown. Command output: Invalid user specified.

Final-Recipient: rfc822; client@mydomain.co.uk
Action: failed
Status: 5.1.1
Diagnostic-Code: x-unix; Invalid user specified.

Вот сделанные записи в журнале:

Jan  6 18:06:52 localhost postfix/pickup[29006]: 0329D3F69: uid=33 from=<me@example.com>
Jan  6 18:06:52 localhost postfix/cleanup[30495]: 0329D3F69: message-id=<fa94de81423027557f28dc0600f1bf6a@www.mydomain.co.uk>
Jan  6 18:06:52 localhost postfix/qmgr[22461]: 0329D3F69: from=<me@example.com>, size=611, nrcpt=2 (queue active)
Jan  6 18:06:52 localhost postfix/pipe[30497]: 0329D3F69: to=<client@mydomain.co.uk>, relay=maildrop, delay=0.15, delays=0.1/0/0/0.04, dsn=5.1.1, status=bounced (user unknown. Command output: Invalid user specified. )
Jan  6 18:06:52 localhost postfix/smtp[30498]: 0329D3F69: to=<me-copy@example.com>, relay=gmail-smtp-in.l.google.com[209.85.227.27]:25, delay=0.61, delays=0.1/0.01/0.06/0.45, dsn=2.0.0, status=sent (250 2.0.0 OK 1294337212 o18si30528441wbo.103)
Jan  6 18:06:52 localhost postfix/cleanup[30495]: 868723F75: message-id=<20110106180652.868723F75@localhost.example.co.uk>
Jan  6 18:06:52 localhost postfix/bounce[30500]: 0329D3F69: sender non-delivery notification: 868723F75
Jan  6 18:06:52 localhost postfix/qmgr[22461]: 868723F75: from=<>, size=2553, nrcpt=1 (queue active)
Jan  6 18:06:52 localhost postfix/qmgr[22461]: 0329D3F69: removed
Jan  6 18:06:52 localhost postfix/pipe[30497]: 868723F75: to=<me@example.com>, relay=maildrop, delay=0.06, delays=0.01/0/0/0.05, dsn=2.0.0, status=sent (delivered via maildrop service)
Jan  6 18:06:52 localhost postfix/qmgr[22461]: 868723F75: removed

Итак, мне скучно на работе, и я подумал, что упомяну следующее. Я никогда раньше не пользовался этим сайтом, так что простите меня.

К одному из ответов вы позже прокомментировали:

«Хорошо, у меня есть virtual_mailbox_domains = $ transport_maps и transport_maps = hash: / etc / postfix / transport. Внутри этого файла есть строка, в которой написано condorproperties.co.uk maildrop: - Следует ли мне удалить эту строку? - НедовольныйGoat вчера»

затем следовало:

"@Devdas: Я попытался удалить эту строку и перезапустить Postfix, это не решает проблему, нужно ли мне изменить" maildrop "на что-то другое? - Вчера DisgruntledGoat"

Ответ на ваш первый вопрос - «да». Эта строка в / etc / postfix / transport принудительно отправляла локальную почту (через maildrop) для электронной почты, предназначенной для condorproperties.co.uk. Удаление наиболее целесообразно. Проблема в том, что простого перезапуска postfix недостаточно для применения изменений.

Проблема в том, что карта, настроенная в файле конфигурации, является хешем: / etc / postfix / transport. Файл / etc / postfix / transport является удобочитаемой версией файла и должен иметь соответствующий /etc/postfix/transport.db - скомпилированный файл хэш-карты. Вы используете команду postmap для компиляции удобочитаемой версии в хешированную версию. Postfix проверяет время модификации и должен громко жаловаться в ваших лог-файлах, что /etc/postfix/transport.db устарел. Все, что вам нужно сделать, это запустить postmap / etc / postfix / transport, чтобы изменения, внесенные вами ранее (удаление строки с condorproperties.co.uk), вступили в силу. На самом деле, я не верю, что вам даже нужно выполнять перезагрузку постфикса, чтобы изменение вступило в силу после того, как вы выполнили команду postmap, но это не повредит.

Короче говоря, запустите postmap / etc / postfix / transport, затем перезагрузите postfix.

Ура.

Кстати, главной подсказкой в ​​ваших файлах журнала была эта строка: 6 января 18:06:52 localhost postfix / pipe [30497]: 0329D3F69: to =, relay = maildrop, delay = 0.15, delay = 0.1 / 0/0 / 0.04, dsn = 5.1.1, status = bounced (пользователь неизвестен. Вывод команды: указан неверный пользователь.)

обратите внимание, где написано relay = maildrop?

Не могли бы вы вставить сюда postconf -n?

Готов поспорить, что у вас mydomain.co.uk явно указан в одном из mydestination, virtual_mailbox_domains или relay_domains с транспортом maildrop.

ring0 правильно понял, но, насколько я понимаю, неправильно разобрал вопрос. Цель состоит в том, чтобы получить электронную почту для одного из доменов на сервере, чтобы он перешел в другое место, но он останется с Postfix.

Любой почтовый сервер будет иметь локальную конфигурацию, заменяющую DNS. Итак, если ваш MTA не смотрит на DNS, у вас есть домен в вашей локальной конфигурации.

Также убедитесь, что у вас нет каких-либо настраиваемых транспортов или транспортных карт, каким-то образом определенных для удаленного домена, в который вы собираетесь отправлять почту.

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

  • У вас может быть проблема из-за TTL доменного имени (зоны), например, вы обновили записи MX у своего регистратора, но TTL этого домена заставляет ранее разрешенную запись оставаться в кэше сервера доменных имен.

  • Кроме того, доменные имена на целевом сервере не могут быть объявлены как местный, заставляя сервер отклонять почту (см. журналы, например /var/log/mail.log) учитывая, что ваш отправляющий сервер пытается ретранслировать (спам) через этот целевой сервер (mydestination в /etc/postfix/main.cf).

Попробуйте dig +nocmd mydomain.tld mx +noall +answer чтобы иметь легко читаемую информацию, включая TTL, с интересующих вас доменов.