dsn=5.6.0, stat= ошибка формата данных при пересылке электронной почты

Наш хост Linux (CentOS) имеет несколько общих доменов, одним из которых является example.com (поддельные имена хостов и пользователей, используемые в этом сообщении); Мы используем /etc/mail/virtusertable чтобы вся почта доставлялась на сайт example.com пользователю exmpl, и ~exmpl/.procmailrc пересылает почту по мере необходимости. Этот метод позволяет exmpl поддерживать свои собственные пересылки, чего нет в /etc/mail/aliases. На самом деле, virtusertable имеет известных получателей для example.com и отклоняет почту для неизвестных получателей. Мы усвоили этот урок давно.

Тем не менее, пересылка почты таким способом не удалась:

Apr 30 21:33:30 bogus sendmail[25645]: r412XUQ8025645: to=person@bogus.org, ctladdr=exmpl (504/504), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30965, relay=[127.0.0.1] [127.0.0.1], dsn=5.6.0, stat=Data format error

Это казалось довольно странным, потому что "человек" является действительным пользователем на bogus.org, а на самом деле bogus.org является основным доменом на той же машине, что и example.com!

Как мы можем это исправить?

2 ответа

Решение

Многие другие решили эту проблему, исправив запись "localhost" в /etc/hostsи / или настройка соответствующих записей DNS. Мы сделали это, и это не решило нашу проблему.

Мы наконец заметили это: ctladdr=exmplДля почты, которая была доставлена ​​правильно, эти записи журнала показали, что в качестве полного адреса электронной почты, например, ctladdr=<person@bogus.org> Чего не хватало, так это важной записи в virtusertable:

exmpl@bogus.org exmpl

Я не претендую на полное понимание этого (это считается моим вопросом!), Потому что для меня это выглядит как "обратное" использование virtusertable. Однако почта, отправленная, как указано выше, теперь работает!

May  6 21:06:40 bogus sendmail[1482]: r4726ejj001480: to=<person@bogus.org>, ctladdr=<exmpl@bogus.org> (504/504), delay=00:00:00, xdelay=00:00:00, mailer=local, pri=62862, dsn=2.0.0, stat=Sent

Обычно становится понятнее, в чем заключается проблема, если вы подключаетесь к серверу MX через порт 25 и инициируете диалог SMTP вручную.

В приведенном выше примере, где ctladdr=exmpl, если вы ввели это как MAIL FROMсервер MX сказал бы вам, что домен не существует, и поэтому он не может принимать вашу почту. У меня была проблема где somedomain.com определяется в DNS и используется для веб-трафика, но Apache пытается отправить почту как apache@www.somedomain.comи выполнение диалога SMTP вручную покажет, что сервер MX не может найтиwww.somedomain.com,

Решение тогда состоит в том, чтобы добавить A или же CNAME запись для этого субдомена.

Другие вопросы по тегам