@rus18reg

Postfix, скрыть реального отправителя?

Первый этап мы сделали, всё работает:
1. Добавили служебный заголовок X-UserID и записали в него некий идентификатор отправителя.
2. В служебных заголовках заменили реальный e-mail отправителя ivan@kontora.ru на e-mail отдела прождаж sales@kontora.ru

На втором этапе требуется: при получении ответа от клиента по служебному заголовку X-UserID найти реальный e-mail ivan@kontora.ru и переслать письмо на этот e-mail.
Проблема в том, что X-UserID не попадает в письмо при ответе на него. И, как следаствие, нельзя определить e-mail получателя (ivan@kontora.ru).

По моему мнению, при ответе на письмо сохраняется только тема письма (и то пользователь при ответе может исправить её).
Поэтому можно рассмотреть такой вариант:
1. Пользователь ivan@kontora.ru отправляет письмо клиенту с темой "Коммерческое предложение".
2. Postfix при отправке письма добавляет в тему письма ID отправителя (ivan@kontora.ru), например "Коммерческое предложение [ID=12345]" и заменяет в письме ivan@kontora.ru на sales@kontora.ru.
3. Клиент отвечает на письмо. При этом почтовый клиент добавить к теме письма префикс "Re: " и тема будет такой: "Re: Коммерческое предложение [ID=12345]"
4. При получении этого письма Postfix распарсит тему и найдет ID сотрудника, по ID найдет его e-mail (ivan@kontora.ru) и перешлет на этот e-mail письмо.
Нас этот вариант устроит со всеми его недостатками.

Вопрос: как реализовать добавление в тему ID пользователя?
Если делать с помощью header_checks, то e-mail отпавителя известен только когда обрабатывается заголовок "From".
А мне надо знать e-mail отправиетеля, когда обрабатывается заголовок "Subject", но в этот момент он неизвестен.
Может header_checks не подходит для этой задачи?
Может есть другой путь? Например, написать какой-то скрипт на каком-либо языке, который бы обрабатывал конкретное письмо и этот скрипт можно было бы включить в Postfix в цепочку обработки писем?
  • Вопрос задан
  • 234 просмотра
Пригласить эксперта
Ответы на вопрос 4
saboteur_kiev
@saboteur_kiev Куратор тега Ubuntu
software engineer
Конечно можно.

Но такое письмо зарубит ближайший спампротектор.

Поэтому работать будет в пределах вашего почтового сервера (например рассылать служебные рассылки от несуществуюшего пользователя), но наружу такие письма с вероятностью 99% будут резаться на всех почтовых узлах.
Ответ написан
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
Подделка почтовых заголовков - крайне плохая идея. Уже не говоря о том, что ответ тоже пойдет на support@domain.tld, потому что протокол SMTP не предусматривает никакой защиты заголовка. То есть конечно, можно покопаться в мозгах постфикса и организовать нечто типа "почтового NAT", когда сервер "помнит", что письмо с заголовком X-Zhopa: AAAA на самом деле отправлял ivanov@domain.tld, письмо с заголовком X-Zhopa: BBBB отправлял petrov@domain.tld и при приеме меняет заголовок обратно - но, боюсь, писать это придется самому :)
Это не считая того, что обычно конторы, у которых переписка идет с одного адреса - могут быть посчитаны за шарашкины.
Ответ написан
@q2digger
никого не трогаю, починяю примус
Официальная дока постфикс www.postfix.org/ADDRESS_REWRITING_README.html
Вам нужен раздел "Relocated users table" и ниже, там все крайне просто.
Ответ написан
Комментировать
@mezhuev
Системный администратор
Смотрите ADDRESS_REWRITING_README, в частности раздел Canonical address mapping.

Это будет легко реализуемая и корректная замена ivan@domain.ru → support@domain.ru и support@domain.ru → ivan@domain.ru соответственно.

получатель видит что письмо пришло с support@domain.ru … получатель отвечает на это письмо то оно должно прийти ivan@domain.ru

А вот здесь уже сложнее. Условный заголовок X-Real-Sender-ID в теле отправленного вами письма никак не попадёт в ответ, который отправит получатель такого письма. Соответственно в нём нет особого смысла. В принципе можно приспособить для этих целей заголовок References, но всё равно придётся писать свой прокси для обработки входящих.

Адрес, на который будет отправлено письмо при нажатии кнопки «Ответить» задаётся заголовком Reply-To. Но и тут надо понимать, что вы не в силах запретить получателю щёлкнуть по адресу в поле «От» и подготовить ответ на данный адрес или любым иным способом указать support@domain.ru в поле «Кому».

Так что ваша идея заведомо содержит неустранимые недостатки и выходит за рамки обязанностей МТА. Решать её, по хорошему, надо другими способами. Например, если это служба поддержки, то за приём и отправку писем должна отвечать специализированная система (Jira, YouTrack и т. д.).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы