exim: динамическое изменение домена в заголовках письма

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
storm
рядовой
Сообщения: 48
Зарегистрирован: 2008-09-26 16:04:39
Откуда: Киев
Контактная информация:

exim: динамическое изменение домена в заголовках письма

Непрочитанное сообщение storm » 2010-02-22 11:32:28

Debian lenny + exim 4.69-9

На сервере вертятся несколько доменов.
Почтовый домен привязан к одному из доменов. Назовем его основным.
Когда пользователь проходит регистрацию на одном из сайтов, то на свой почтовый ящик получает стандартное письмо с подтверждением регистрации. Однако в заголовках письма светится не тот домен на котором он проходил регистрацию, а основной:

Пример некоторых заголовков:

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

Return-Path: <www-data@основной_домен>
Received: from основной_домен ( основной_домен [IP])
        by mx.google.com with ESMTP id 3si22101645yxe.27.2010.02.22.00.08.19;
Каким образом сделать динамическую подстановку того домена на котором пользователь проходит регистрацию?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: exim: динамическое изменение домена в заголовках письма

Непрочитанное сообщение Alex Keda » 2010-02-22 15:08:44

вариантов масса.
проще всего при регистрации впихнуть имя нужного домена в какой-то заголовок типа

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

X-mail-from:
и на его основе переписать отправителя
Убей их всех! Бог потом рассортирует...

Аватара пользователя
storm
рядовой
Сообщения: 48
Зарегистрирован: 2008-09-26 16:04:39
Откуда: Киев
Контактная информация:

Re: exim: динамическое изменение домена в заголовках письма

Непрочитанное сообщение storm » 2010-02-22 16:57:46

Можно подробнее? Или, если вас не затруднит, дайте ссылку где можно почитать на эту тему.

dudedude
рядовой
Сообщения: 36
Зарегистрирован: 2010-01-18 21:26:56
Откуда: Казахстан, Костанай
Контактная информация:

Re: exim: динамическое изменение домена в заголовках письма

Непрочитанное сообщение dudedude » 2010-02-27 19:53:19

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

remote_smtp:
driver = smtp
interface = ${if exists {/etc/exim4/mail_ips}{${lookup{$sender_address_domain}lsearch{/etc/exim4/mail_ips}{$value}{}}}{}}
helo_data = ${lookup dnsdb{ptr=$sending_ip_address}{$value}{$primary_hostname}}
etc/exim4/mail_ips

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

Домен:ip
У меня вот так все работает
Debian 5.03/Exim 4.71

Аватара пользователя
storm
рядовой
Сообщения: 48
Зарегистрирован: 2008-09-26 16:04:39
Откуда: Киев
Контактная информация:

Re: exim: динамическое изменение домена в заголовках письма

Непрочитанное сообщение storm » 2010-03-01 11:01:15

dudedude писал(а): У меня вот так все работает
Сделал

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

remote_smtp:
    driver = smtp
    interface = ${if exists {/etc/exim4/mail_ips}{${lookup{$sender_address_domain}lsearch{/etc/exim4/mail_ips}{$value}{}}}{}}
    helo_data = ${lookup dnsdb{ptr=$sending_ip_address}{$value}{$primary_hostname}}
В файле /etc/exim4/mail_ips

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

домен1:ip
домен2:ip
домен3:ip
домен4:ip
ip - для всех доменов один и тот же.

И письма во внешний мир перестали уходить. В логах

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

2010-03-01 09:41:46 [18414] 1Nm0D7-0004mw-OV gmail-smtp-in.l.google.com [209.85.220.50]:25 Connection timed out
2010-03-01 09:44:55 [18414] 1Nm0D7-0004mw-OV alt1.gmail-smtp-in.l.google.com [209.85.135.27]:25 Connection timed out
2010-03-01 09:48:04 [18414] 1Nm0D7-0004mw-OV alt2.gmail-smtp-in.l.google.com [209.85.222.65]:25 Connection timed out
Привел конфиг к изначальному виду и почта на отправку сразу же заработала

gyurza2000
лейтенант
Сообщения: 895
Зарегистрирован: 2007-07-08 23:53:20
Откуда: SPb
Контактная информация:

exim: динамическое изменение домена в заголовках письма

Непрочитанное сообщение gyurza2000 » 2016-11-25 10:31:18

И снова здравствуйте, хотел бы оживить тему.
Вобщем проблема та же - несколько доменов на одном IP. Соответственно, хотелось бы, что бы почтовик в HELO подставлял тот домен, с которого собственно и отправляется письмо, а не то что в primary_hostname.
Понял, что использовать надо helo_data = , а вот с синтаксисом что то не получилось.
Написал

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

helo_data = $sender_address_domain
и письма перестали уходить - заморозились. Закомментил строку, письма ушли
Как правильно данную задачу реализовать?

Отправлено спустя 26 минут 2 секунды:
Или для этого нужно использовать smtp_active_hostname ?
Xeon X5460, RAM 8Gb, FreeBSD 13.1-RELEASE on amd64, Apache 2.4, PHP 7.3.30, MySQL 5.7, Exim 4.95_5, Dovecot 2.3.19.1

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

exim: динамическое изменение домена в заголовках письма

Непрочитанное сообщение xM » 2016-11-25 12:42:01

Вообще лучше чтобы имя в HELO соответствовало имени хоста, с которого идёт отправка. Соответственно IP его должен разрешаться в то же имя хоста. Иначе многие серверы, и, в частности, мои, будут более пессимистически относиться к такому отправителю.
Теоретически вы можете дать одному IP множество имён в разных доменных зонах, но вопрос с реверсной зоной это не решит - PTR рекомендуется делать только для соответствия одному имени хоста.
IT voodoo blog https://kostikov.co

gyurza2000
лейтенант
Сообщения: 895
Зарегистрирован: 2007-07-08 23:53:20
Откуда: SPb
Контактная информация:

exim: динамическое изменение домена в заголовках письма

Непрочитанное сообщение gyurza2000 » 2016-11-25 13:05:46

C PTR понятно, его не трогаем там прописано одно имя домена. Но, доменов то несколько на одном IP
Xeon X5460, RAM 8Gb, FreeBSD 13.1-RELEASE on amd64, Apache 2.4, PHP 7.3.30, MySQL 5.7, Exim 4.95_5, Dovecot 2.3.19.1

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

exim: динамическое изменение домена в заголовках письма

Непрочитанное сообщение xM » 2016-11-25 13:15:38

gyurza2000 писал(а): C PTR понятно, его не трогаем там прописано одно имя домена. Но, доменов то несколько на одном IP
Я выше уже написал как должно быть с тем, чтобы избежать возможных проблем с доставкой.
IT voodoo blog https://kostikov.co

gyurza2000
лейтенант
Сообщения: 895
Зарегистрирован: 2007-07-08 23:53:20
Откуда: SPb
Контактная информация:

exim: динамическое изменение домена в заголовках письма

Непрочитанное сообщение gyurza2000 » 2016-11-25 13:32:55

Вы со мной сейчас общаетесь как с администратором, коим я не являюсь. Я агрохимик. Всё что я спрашиваю, не относится к моей профессиональной деятельности. Соответственно, я не всё понимаю, что Вы советуете. Мне нужны конкретные примеры, что бы я видел, как это реализуется в конфиге EXIM, если не затруднит.

Если на пальцах, то как сделать что бы при отправке с mail@domen1.ru в HELO писалось helo=[domen1.ru], а при отправке с mail@domen2.ru в HELO писалось helo=[domen2.ru]. При условии что IP у доменов один.
Xeon X5460, RAM 8Gb, FreeBSD 13.1-RELEASE on amd64, Apache 2.4, PHP 7.3.30, MySQL 5.7, Exim 4.95_5, Dovecot 2.3.19.1

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

exim: динамическое изменение домена в заголовках письма

Непрочитанное сообщение xM » 2016-11-25 13:37:22

А я вам написал, что поскольку PТR прописывать рекомендуется только для одного имени хоста при желательности соответствия имени хоста его HELO то, чего вы хотите, превращается в не слишком надёжно работающую схему.
Так понятнее?
IT voodoo blog https://kostikov.co

gyurza2000
лейтенант
Сообщения: 895
Зарегистрирован: 2007-07-08 23:53:20
Откуда: SPb
Контактная информация:

exim: динамическое изменение домена в заголовках письма

Непрочитанное сообщение gyurza2000 » 2016-11-25 14:17:05

Ответ понятен, но реализация этой "не слишком надёжно работающей схемы" не понятна.
Неужели у меня у одного настолько нетривиальная задача - 2 домена с почтой на одном IP ?
Разве helo_data и smtp_active_hostname не позволяют этого сделать?Или данные директивы только для нескольких доменов с уникальными IP?
Xeon X5460, RAM 8Gb, FreeBSD 13.1-RELEASE on amd64, Apache 2.4, PHP 7.3.30, MySQL 5.7, Exim 4.95_5, Dovecot 2.3.19.1

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

exim: динамическое изменение домена в заголовках письма

Непрочитанное сообщение xM » 2016-11-25 14:19:24

Задача тривиальная. Непонятно зачем при этом менять HELO и hostname.
Или данные директивы только для нескольких доменов с уникальными IP?
Данные директивы для чего угодно. Вопрос в том, как это будет работать.
Посмотрите внимательно на пример к helo_data в документации Exim.
Там хорошо иллюстрируется тот подход, который я описал выше.
IT voodoo blog https://kostikov.co

gyurza2000
лейтенант
Сообщения: 895
Зарегистрирован: 2007-07-08 23:53:20
Откуда: SPb
Контактная информация:

exim: динамическое изменение домена в заголовках письма

Непрочитанное сообщение gyurza2000 » 2016-11-25 14:45:12

Вот ещё вопрос...при отправке почты с WEB морды в HELO пишется хост, а при отправке через mail клиент в HELO пишется лишь IP
Xeon X5460, RAM 8Gb, FreeBSD 13.1-RELEASE on amd64, Apache 2.4, PHP 7.3.30, MySQL 5.7, Exim 4.95_5, Dovecot 2.3.19.1

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

exim: динамическое изменение домена в заголовках письма

Непрочитанное сообщение xM » 2016-11-25 14:59:42

gyurza2000 писал(а): при отправке почты с WEB морды в HELO пишется хост, а при отправке через mail клиент в HELO пишется лишь IP
Этот HELO - клиентский. Сервер будет использовать свой согласно конфигурации. На отправку на удалённый сервер это влиять не должно.
В крайнем случае можете удалить свой локальный заголовок Recieved при обработке письма в Exim.
IT voodoo blog https://kostikov.co