LINUX.ORG.RU
ФорумAdmin

exim4 доставка через самртхост, если не доставлено напрямую


0

2

Есть Exim4, всё настроено, всё бегает как мне надо. Есть работающие роутеры dnslookup(отправка напрямую) и smarthost(отправка через смартхост), по отдельности они работают корректно.

Как сделать, что бы если при отправке писем через роутер dnslookup произошел отказ в приеме письма, то письма слались бы через смартхост?

Например gmail.com переодически не хочет принимать письма от моего сервака, грит что то типа:

550-5.7.1 [XXX.XXX.XXX.XXX] The IP you're using to send mail is not authorized to
550-5.7.1 send email directly to our servers. Please use the SMTP relay at your
550-5.7.1 service provider instead. Learn more at
550 5.7.1 http://support.google.com/mail/bin/answ ... swer=10336 m9si3038539lae.120 - gsmtp

вот и хотелось бы, что бы в таких случаях письма шли через смартхост.

У тебя, в данном случае, ошибка 550 (permanent rejection) — так с какой стати MTA должен искать обходные пути?

P.S. настрой свой МТА и/или dns, чтобы их не режектили или отсылай все через смартхост. костыли ввиде обхода не нужны

sdio ★★★★★ ()
Последнее исправление: sdio (всего исправлений: 1)
Ответ на: комментарий от sdio

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

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

ladserg ()

То, что тебе нужно, называется fallback, но оно работает только в случае всяких таймаутов и 4xx ошибок. В случае 5xx оно не поможет.
В данном случае я бы заюзал verify c флагом callout на этапе acl_check_rcpt. Если callout пройден успешно, то надо создать переменную. Далее, в роутере dnslookup надо вставить анализ этой переменной, и принять решение, роутить сюда это письмо или в smarthost. Как-то так.

Bers666 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.