[exim-conf] реализация нового типа маршрута для mailertable для доставки копий писем по SMTP

Victor Ustugov victor на corvax.kiev.ua
Чт Фев 12 23:19:06 EET 2015


Victor Ustugov wrote:

>>> Клиентский домен сейчас припаркован у Яндекса.
>>> Готовлю сервер для переезда, и хочу сделать так, чтобы Exim в качестве
>>> основного МХ-а какое-то время доставлял еще почту и на Яндекс, и на
>>> почтовый сервер клиента.
>>>
>>> Домен клиента указан в domains-relayto (в domains-local не указываю,
>>> т.к. почтовые ящики на удаленном сервере Zimbra).
>>> Подскажите, как правильно настроить маршрутизацию?
>>
>> готового ничего нет.

...

> если после этого почта будет доставляться корректно в соответствии с
> задачей, то нужно будет думать, как обозвать этот новый функционал и как
> его описать в m4/conf.default, т. к. он уже не будет иметь отношения к
> резервному копированию почты.
> 
> возможно придется для mailertable реализовать тип маршрута shadow_smtp
> или что-то в этом духе.

реализован новый тип маршрута для mailertable - shadowsmtp

включается использование shadowsmtp маршрутов с помощью переменной
confMAILERTABLE_SHADOWSMTP:

define(`confMAILERTABLE_SHADOWSMTP', `YES')

сам маршрут в mailertable (его значение) задается также, как и smtp
маршрут (можно указывать несколько хостов, разделенных двоеточиями,
можно указывать нестандартный номер порта через два двоеточия, также в
качестве значения маршрута можно указывать домены с суффиксами /MX и
/bestMX).

в случае использования значений `TEXT' и `DBM' для confMAILERTABLE после
домена (или полного адреса получателя) нужно указать суффикс "|shadow":

domain.tld|shadow : shadowsmtp : host1 : host2


в случае реализации запроса без суффикса было возможно использовать
такой shadowsmtp маршрут только в случае, когда основная доставка почты
данного домена производилась по MX'ам роутером dnslookup.

в случае же, если основная доставка производится по SMTP или LMTP с
использованием ручного маршрута, указанного в mailertable, поиск с
помощью wildlsearch вернет только первую найденную строку.
соответственно, пришлось делать строки уникальными для основного
маршрута и для shadowsmtp маршрута.

т. о. пример mailertable для случая из этого обсуждения будет выглядеть так:

клиентский_домен|shadow : shadowsmtp : клиентский_сервер
клиентский_домен : smtp : mx.yandex.ru


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

в случае, если в качестве значения confMAILERTABLE используется `MYSQL'
или `SQLITE', то запросы для получения shadowsmtp маршрута нужно
указывать в переменных confMAILERTABLE_SHADOW_MYSQL и
confMAILERTABLE_SHADOW_SQLITE соответственно.


и последнее замечание: действие переменной
confMAILERTABLE_SMTP_SKIP_LOCALDOMAINS, отвечающей за исключение
локальных доменов из доставки по ручным smtp маршрутам, распространяется
и на shadowsmtp маршруты.

т. е. если с помощью shadowsmtp маршрутов нужно будет маршрутизировать
копии локально доставляемых писем, то нужно будет присваивать переменной
confMAILERTABLE_SMTP_SKIP_LOCALDOMAINS значение `NO'.


-- 
Best wishes Victor Ustugov  mailto:victor на corvax.kiev.ua
public GnuPG/PGP key:       http://victor.corvax.kiev.ua/corvax.asc
ICQ UIN: 371808614          JID: corvax_at_nb на jabber.corvax.kiev.ua
nic-handle: CRV-UANIC



Подробная информация о списке рассылки exim-conf