LINUX.ORG.RU
ФорумAdmin

Exim и два внешних релея. Нужна помощь.

 , , ,


0

2

Здравствуйте, уважаемые форумчане!

Помогите пожалуйста разобраться. Свалилась тут на голову проблема, не хватает познаний чтоб решить. Письма с моего сервака, уходят через релей дата центра (назовем его dc.relay.com). Порты SMTP закрыты их фаером.

По какой-то причине, релей дата центра, где хостится сервер, не может отправить письма на yahoo.com и еще несколько доменов. Предполагаю, что список этот может пополняться.

<........@hotmail.com>: connect to 1.2.3.4[1.2.3.4]:25: Connection refused

И причем, на И валятся письма нам назад. Юзер ничего соответственно не получает, а это крайне важно, чтоб у него это письмо было в почтовом ящике. Длительные бодания с сапортом дата центра ни к чему не привели.

Есть у нас еще один внешний релей на godaddy (назовем его external.relay.com). Так вот что нужно сделать, так это чтоб на заданные (желательно в отдельно взятом файле) домены получателей, письма уходили через второй релей (external.relay.com), а по умолчанию использовался релей дата центра (dc.relay.com).

Сейчас, у меня успешно работает вот такой smarthost: Это вариант работающий сейчас с релеем dc.relay.com

smarthost:
    driver = manualroute
    domains = ! +local_domains
    transport = remote_smtp
    route_data = "dc.relay.com"

Соответственно к нему кусок транспорта

remote_smtp:
  driver = smtp
  dkim_domain = DKIM_DOMAIN
  dkim_selector = mail
  dkim_private_key = DKIM_PRIVATE_KEY
  interface = ${if exists {/etc/exim/domain_ips}{${lookup{$sender_address_domain}lsearch*{/etc/exim/domain_ips}{$value}{}}}{}}
  helo_data = ${if exists {/etc/exim/domain_hello}{${lookup{$sender_address_domain}lsearch*{/etc/exim/domain_hello}{$value}{$primary_hostname}}}{$primary_hostname}}

А вот такой вариант используется для external.relay.com

smart_route:
    driver = manualroute
    domains = ! +local_domains
    transport = auth_relay
    route_list = * smtpout.secureserver.net::80

И транспорт к нему

auth_relay:
    driver = smtp
    port = 80
  dkim_domain = DKIM_DOMAIN
  dkim_selector = mail
  dkim_private_key = DKIM_PRIVATE_KEY
  interface = ${if exists {/etc/exim/domain_ips}{${lookup{$sender_address_domain}lsearch*{/etc/exim/domain_ips}{$value}{}}}{}}
  helo_data = ${if exists {/etc/exim/domain_hello}{${lookup{$sender_address_domain}lsearch*{/etc/exim/domain_hello}{$value}{$primary_hostname}}}{$primary_hostname}}
    hosts_try_auth = $host_address

Собственно задача в том, чтоб сделать так, что если получатель письма принадлежит определенным доменам (например yahoo.com, hotmail.com), то почта отправлялась через external.relay.com, если же нет, то чтоб уходила через первый dc.relay.com.

В идеале, хотелось бы конечно вообще как-то анализировать MX серверы, т.к. например на gmail.com можно сделать обслуживание своего домена example.com (типа как почта для домена на яндексе), но при этом принимающие SMTP серверы это все-равно серваки gmail-а и могут отшибать письма для user@example.com, если почтовым сервисом для example.com выбран gmail...

Не могу допереть как это все организовать. Помогите пожалуйста.

Спасибо!

С уважением.

1.2.3.4[1.2.3.4]:25: Connection refused

Проскань этот 1.2.3.4 на предмет открытого порта. Если всё хорошо — подключись телнетом и пошли простое письмо себе для проверки

XMs ★★★★★ ()
Ответ на: комментарий от XMs

Я это в первую очередь сделан. Этот 1.2.3.4 это релей датацентра на выход, от клиентов ДЦ он не принимает соединения. Он только отдает наружу. А сам релей который принимает клинетов ДЦ, это dc.example.com. У него другой IP.

И себе я письма отправлял. Регался на яхе, и отправлял. Не идут и все, и только с этого выходного релея. Несколько раз отправлял, один раз попал на другой выходной 5.6.7.8, от него дошло, от этого нет.

Но такая роскошь дошло/не дошло мне совсем не вариант. В письмах содержится важная для юзеров информация которая кровь из носу должна быть получена.

А вот с godaddy, отправляет на раз, куда хочешь. Но там другая проблема, там очень маленький суточный лимит исходящих. Мне его не хватит.

Shadow2015 ()

Скорее всего релай датацентра давно во всех злых черных листах, никто за ним не следит, и существует для галочки. По транспорту auth_relay: port = 80 это оригинально, ну да ладно.

По поводу роутеров. Роутеры применяются сверху вниз. Поэтому дефолтный ставим вниз

...
domainlist smart_domains = lsearch;/etc/exim/smart_domains
...
smart_route:
...
    domains = yahoo.com : hotmail.com : itd.com : +smart_domains
    no_more
...
smarthost:
...
    domains = ! +local_domains
...

anonymous ()
Ответ на: комментарий от anonymous

Скорее всего релай датацентра давно во всех злых черных листах, никто за ним не следит, и существует для галочки.

Да проверил, все чисто как в аптеке. Нигде не запарафинен. Я так думаю что у них чисто с настройками этого сервера какая-то фигня. Там у них сеть этих мейлеров, я отправляю на dc.relay.com, а наружу потом например на яндекс, отдается от них же только уже dc19out.relay.com, и это физически разные серверы. Вот думаю что этот dc19out и выпендривается, т.е. что он не принимает соединения. А сам я к нему прителнетится не могу и к любым этим dcXXXout.relay.com никто открыть соединение не может. Например dc12out.relay.com работает норм, через него как раз на яху мне и пришло успешно письмо во время тестов. У этого ДЦ там параноя целая в плане секурности.

По транспорту auth_relay: port = 80 это оригинально, ну да ладно.

Да это всплошь и рядом у всех коммерческих SMTP сервисов, на какие только не вешают порты. Это они именно для обхода блокировки 25го порта и делают.

По поводу роутеров. Роутеры применяются сверху вниз. Поэтому дефолтный ставим вниз

... domainlist smart_domains = lsearch;/etc/exim/smart_domains ... smart_route: ... domains = yahoo.com : hotmail.com : itd.com : +smart_domains no_more ... smarthost: ... domains = ! +local_domains ...

Спасибо за наводочку. Сейчас траф немного спадет к вечеру, буду пробовать.

Shadow2015 ()
Ответ на: комментарий от Shadow2015

Скорее всего релай датацентра давно во всех злых черных листах, никто за ним не следит, и существует для галочки.

Да проверил, все чисто как в аптеке.

У yahoo, gmail, aol свои рейтинговые (это важный момент) системы. Не подающиеся «разумению». И не описанные нигде. Только личные тесты. Но если попали туда, это полная беда, выпилиться почти не реально, только смена IP.

anc ★★★★★ ()

как то так будет:

smarthost_two:
 driver = manualroute
 domains = !+local_domains : yahoo.com : hotmail.com : gmail.com 
 transport = remote_smtp #укажи другой если используются другие настройуи
 route_list = * твой ip
 no_more
avb ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.