Настройка exim

Клиенты и серверы

Модератор: /dev/random

Аватара пользователя
yoricI
Сообщения: 1443
ОС: gentoo fluxbox

Настройка exim

Сообщение yoricI »

Здравия!
Подскажите пож-ста, кто силён. exim настроен дома, отправка с локальной машины через внешний смартхост, получение от fetchmail, и локальная и удалённая доставки работают, но в логе в случае локальной доставки (от юзера к юзеру, от демонов и от fetchmail) пишет "От <=" внешний адрес для смартхоста. И не только в логе, в заголовках тоже.
В конфиге такая перезапись:

Код: Выделить всё

begin rewrite
*@+local_domains "${lookup{$local_part}lsearch{/etc/email-addresses}{$value}fail}}" Ffrs

Вот он и переписывает всё подряд. Для смартхоста это надо, в других случаях нет. Есть мысль вставить сюда условие, если получатель на локальной машине, то не делать перезапись. Нечто вроде:

Код: Выделить всё

*@+local_domains "${if !eq {$ДОМЕН_ПОЛУЧАТЕЛЯ}{ЛОКАЛ_ДОМЕН}\
#ТО ДЕЛАЙ РАЗ#
    ${lookup{$local_part}lsearch{/etc/email-addresses}{$value}fail}}" Ffrs

Признаюсь честно, в таких выражениях, кроме простейших случаев, ни в зуб ногой. Да и непонятно, откуда брать ДОМЕН_ПОЛУЧАТЕЛЯ и ЛОКАЛ_ДОМЕН. Документация прочитана, и в переводе и в оригинале пытался местами, но там видимо рассчитано на кое-что уже смыслящих. Ну ЛОКАЛ_ДОМЕН можно как есть прописать. Но эти скобочки прям тоску наводят :console: Помогите кто может :rolleyes:
Спасибо сказали:

Аватара пользователя
yoricI
Сообщения: 1443
ОС: gentoo fluxbox

Re: Настройка exim

Сообщение yoricI »

Почти добился чего хотел, перенеся перепись в транспорт. Переписывается всё, кроме "Envelope-From", который можно косвенно переписать установкой "Return-Path".
Вот так работает, но только для одного:

Код: Выделить всё

return_path = external-user@yandex.ru
headers_rewrite = * "${lookup{$1}lsearch{/etc/email-addresses}{$value}fail}" frs

Можно ли в транспорте завести переменную, чтобы считывать реквизиты из /etc/email-addresses и потом эту переменную вставлять в return_path и в headers_rewrite? Во избежание многократых чтений файла.
Вот так:

Код: Выделить всё

RMSMTPHDR=(после $local_part: из /etc/email-addresses)
# headers_rewrite = * $RMSMTPHDR frs
  return_path = $RMSMTPHDR

Формат /etc/email-addresses:

Код: Выделить всё

local_user: user@smarthost.ru
Спасибо сказали:

Аватара пользователя
yoricI
Сообщения: 1443
ОС: gentoo fluxbox

Re: Настройка exim

Сообщение yoricI »

Почему в транспорте не работает такая конструкция:

Код: Выделить всё

return_path = ${lookup{$1}lsearch{/etc/email-addresses}{$value}fail}

а прямая подстановка адреса работает?
Спасибо сказали: