[Карта]
[Начало]
[Sendmail-ссылки]
[Синтаксис]
[Типовые задачки]
[Задачки по маршрутизации]
[Задачки по маcкарадингу]
[SendmailACL]
[Spamooborona]
[VadeRetro]
[Regex]
[Тонкости]
[Недок.особен.]
[Несущ.юзеры]
[Прячемся!]
[RFC1893.Цитаты]
[ТП.Эмоции]
[Антиспам&Разум]
[Экзерсисы]
Задачки по маcкарадингу.
1. Теория.
2. Reserved
3. Reserved
4.Задачки.
4.1. Как изменить адрес оправителя в зависимости от адреса получателя.
4.2. Как изменить реквизиты оправителя в поле From в зависимости от зоны домена получателя.
4.3. Подмена адреса отправителя в транзитной почте.
4.4.
4.1.
4.1.
1. Теория.
Некоторые относящиеся к теме опции.
FEATURE(always_add_domain)dnl
FEATURE(allmasquerade)dnl
MASQUERADE_AS(`domain.ru')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
MASQUERADE_DOMAIN(`host1.domain.ru')dnl
4. Задачки.
4.1. Как изменить адрес оправителя в зависимости от адреса получателя.
Описано здесь - FAQ: Other often asked questions about sendmail .
Нужно будет создать дополнительный mailer.
4.2. Как изменить реквизиты оправителя в поле From в зависимости от зоны домена получателя.
01.03.209. Задача в полной мере отражает российский менталитет в плане желания прогнуться под Запад с одной стороны, и
неприятия латиницы старшим поколением с другой стороны, ну да ладно ... Хотя грустно от того, что из-за детских комплексов
взрослых людей админам приходится мучиться ...
Итак, руководство одной фирмы рефлексирует по поводу предполагаемого неадекватного
восприятия кириллицы в поле From: зарубежными партнерами.
То есть вот такой
From: Васисуалий Иванович Лоханкин < vasya@super-muper-company-horns-and-hooves.ru >
на том конце света
предстанет перед нерусскоговорящим получателем скорее всего в таком виде
С_т_р_а_ш_н_ы_е__к_р_а_к_о_з_я_б_р_ы < vasya@super-muper-company-horns-and-hooves.ru >.
Завидев такой "ужас, летящий на крыльях летучей мыши TheBat!", предполагаемый визави отпрянет от экрана, картинно
прикрыв глаза рукой (совсем как в фильмах немого кино), и
предпочтет не иметь дело с таким страшным партнером, переключившись на что-то более удобоваримое,
все из себя латинистое, понятное и потому прекрасное.
Как и следовало ожидать от такого руководства, указание своих реквизитов в поле From: изначально латиницей
неприемлемо еще больше нежели кириллица в From: в письмах зарубежному партнеру. Оно и понятно:
получив письмо с latin Full Name в поле From: российский партнер со схожими рефлексами неприятно подивится еще больше
и скажет, а чтой-то наш разлюбезный Васисуалий Иваныч совсем загордился и на аглицкий манер начал представляться?
Никак от Родины отрекся? И к якобинцам примкнул? И сбежать решил? Да с казною? Да он же НЕБЛАГОНАДЕЖНЫЙ! Инакомыслящий!
Да надо срочную депешу отправить ... Президенту? ... Неее ... Премьер-министру? ... Не ...
Во! Передаче "Человек и закон" ! Самому ПИМАНОВУ!!!
Ну тут еще много чего можно напридумывать, благо, что Гоголь, Лесков,
Салтыков-Щедрин и Чехов немало про такую категорию людей писали. Все знакомо, и печально, что ничего не меняется ...
Ну, вы уже поняли задачу.
Full Name часть поля From: в письмах от определенной группы людей должна меняться с кириллицы на латиницу, если письмо отправляется
по любому не ru-адресу.
Сначала мне эта задачка не показалась сложной. В sendmail.cf имеется рулсет MasqHdr,
на который и предполагалось возложить эту задачку. Но оказалось, что этот рулсет работает исключительно
с адресом апользователя. То есть на вход подается уже освобожденный от Full Name (если он был) заголовок From.
Тогда я стала обдумывать решение с.п. LOCAL_RULE_0 по следующей схеме:
письмо от определенной группы юзеров и для доменов вне зоны ru должно заворачиваться в
локальный ящик, а далее на этапе локальной доставки должен подключиться procmail,
заменить в этом письме заголовок From в части Full Name c кириллицы на латиницу (опираясь при замене не на сам кириллический Full Name,
а на e-mail отправителя,), после чего отправить письмо по назначению.
Первый минус этого решения в возможном использовании отправителем Bcc. В этом
случае невозможно будет выцепить заголовок To: или Сс: Тут я вижу единственный выход - запретить
в рулсете CheckTo этой группе юзеров письма с отсутствующими To: или Сс: для доменов вне зоны ru.
Другая проблема - многочисленные получатели письма в заголовках To: и Сс:. Когда такое письмо
попадет procmail'у, он, переписав заголовок From, отправит письмо всем персонам, указанным в To: и Сс:,
причем столько раз, сколько иностранных персон окажется в этом списке.
Обойти этот момент можно, если добавить в заголовок письма дополнительный заголовок,
в котором будет обозначен истинный получатель этого письма, и указать procmail'у,
что получателем будет адрес именно из этого заголовка. Тогда и проблема с Bcc будет решена.
Это я пока не пробовала, это только предположение. Хотя при таком раскладе сам смысл Bcc пропадает, потому что секретный получатель будет засвечен.
Обратившись
за комментариями
к sendmail-гуру, я получила в ответ рекомендацию использовать MIMEDefang.
И удивление по поводу того, что я нашла приличным использовать для этой задачи сам sendmail.cf.
Ну я знаю, что sendmail-гуру частенько повторяют, что sendmail - это mail router,
у него и без того забот хватает, и заставлять его заниматься извратами - очень неприлично.
На это я могла бы возразить только одно. Насколько я понимаю, вот этой "неприличной" работы
в данной задаче будет немного. Ну может, за неделю отправляется одно-два письма зарубежному партнеру
от рефлексирующего руководства. И из-за двух писем подключать MIMEDefang я бы не стала
вот по этой причине. Я теперь при решении задач задумываюсь над
затратами и оптимизацией, и лично меня совсем не устраивает тот факт, что MIMEDefang
будет дергаться на каждом этапе каждого smtp-диалога, хотя мне в этой задаче нужен всего лишь
разбор заголовка "To:" 2-3 раза в неделю.
А вот описание соответствующей функции. Жду от автора задачи подробного отчета.
Mickey Hill. The MIMEDefang HOWTO.
9.2 Functions
action_change_header($hdr, $val, $index) - Changes an existing header in the message.
This can be used in filter_begin or filter_end. The $hdr parameter is the header name without the colon,
and $val is the header value. If the header does not exist, then a header with the given name and value is added.
The $index parameter is optional; it defaults to 1.
If you supply it, then the $index'th occurrence of the header is changed,
if there is more than one header with the same name. (This is common with the Received: header, for example.)
P.S. Хотя "История не имеет сослагательного наклонения", но все же позволю себе пофантазировать ...
Если бы не бесконечный террор на территории российского государства по отношению к своему народу,
а также бесчисленные глобальные и локальные войны,
а также очччень вредные российские привычки, кто знает, может быть, сегодня человечество налегало совсем не на английский,
китайский и арабский языки ... Совсем ... Имхо, к этому были предпосылки ...
А если еще вспомнить известный афоризм
"Россия так долго игнорировала кибернетику, что та еще не скоро заговорит по-русски"
(когда-то в России кибернетику называли лженаукой),
то при первом фантастическом языковом раскладе и втором фантастическом своевременном кибернетическом раскладе
жить носителям русского языка было бы гораздо интереснее. И сейчас бы над этой задачкой ломал голову
не админ Петя Иванов, а админ совсем на другом конце земли, переиначивая имя своего шефа в Full Name, скажем,
из Basil John Smith в Василия Ивановича Кузнецова ... И то только в том случае, если бы у его шефа были такие же вековые комплексы,
как и у героев этого рассказа.
4.3. Подмена адреса отправителя в транзитной почте.
Автор задачи и решения - Ливитин С.Ю.
Дано:
1. MSExchange -> Sendmail -> Hello, world!
2. На MSE 2 группы юзеров по 5 человек.
Требуется, чтобы транзитный релей (sendmail) менял адрес отправителя в почте от MSE так, чтобы
почта от первой группы была подписана адресом sale@dovestai.it, а почта от второй группы - manager@dovestai.it
GENERICS_DOMAIN(`dovestai.it')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(genericstable, `hash -o /etc/mail/genericstable')dnl
...
в /etc/mail/genericstable :
user1@dovestai.it [TAB] sale@dovestai.it
user2@dovestai.it [TAB] sale@dovestai.it
...
user6@dovestai.it [TAB] manager@dovestai.it
user7@dovestai.it [TAB] manager@dovestai.it
...
Замечу от себя, что genericstable работает только с нелокальными доменами.
http://www.opennet.ru/openforum/vsluhforumID1/83366.html
Обратная связь
Страница создана 28 февраля 2009г. Последнее обновление - 2 марта 2009г.