От: bomber@rambler.ru
Переслать копию сообщения на адрес: bomber@rambler.ru
В целях безопасности, после сохранения этих настроек, на адрес получателя (в данном случае это bomber@rambler.ru.) приходит письмо с просьбой подтверждения этой операции. Цель такой процедуры, не совсем понятна, хотя возможно это способ защитится от пересылки писем на несуществующий адрес. Для нас это играет достаточно большую роль, поскольку, если выставить в качестве получателя адрес мобильного номера, то подтвердить переадресацию будет невозможно. Следовательно, отправка SMS через фильтры Mail.Ru не возможна. Идентично настраивается переадресация и на Rambler.Ru:
From is: bomber@mail.ru
Redirect копию To: bomber@mail.ru
Но в данном случае, для переадресации писем не надо никаких подтверждений. Это значит, что именно с Rambler.Ru будет производиться непосредственная бомбардировка сообщениями. Теоретически, если теперь с одного адреса написать письмо на другой, автоматически замкнется цепь пересылки. Но в действительности, отправленное сообщение проходит маршрут только один раз (с Mail.Ru на Rambler.Ru, и обратно на Mail.Ru). Чтобы разобраться с причиной остановки письма, необходимо проанализировать RFC заголовки отправляемых писем и то, как они изменяются после переадресации.
Фрагмент исходного сообщения, которое было отправлено с Mail.Ru.
1.01 Return-Path: <bomber@mail.ru>
1.02 From: "Tester Testenko - Mail.Ru" <bomber@mail.ru>
1.03 To: bomber@rambler.ru
1.04 Subject: Testing #1
1.05 Message-Id: <E1DvsXk-000CqW-00.tester128-list-ru@f26.mail.ru>
Это то же самое письмо, вернувшееся на Mail.Ru, после его обработки фильтром на Rambler.Ru.
2.01 Return-path: <mailer-daemon@rambler.ru>
2.02 From: "Tester Testenko - Rambler.Ru" <bomber@rambler.ru>
2.03 To: "Tester Testenko - Mail.Ru" <bomber@mail.ru>
2.04 Subject: Re: Testing #1
2.05 Message-ID: <react-260174159@mail2.rambler.ru>
2.06 X-Autogenerated: Reply2.07 In-Reply-To: <E1DvsXk-000CqW-00.tester128-list-ru@f26.mail.ru>
Все, на этом круг разрывается. Вопрос в первую очередь заключается в том, чтобы определить какой из серверов идентифицирует письмо как уже полученное. В данном случае это Mail.Ru. Видимо это происходит вследствие того, что письмо 2 хранит в себе информацию о маршруте. Посмотрите, из строки 2.07 сразу понятно, что это ответ на письмо 1 (см. 1.05). А 2.06 – указывает на характер ответа, а именно автоматизированный.
Чтобы более точно определить характеристики, по которым письмо "бракуется", продолжим эксперименты с фильтрами. На этот раз, попробуем воспользоваться возможностью создания автоматического ответа для входящей корреспонденции. А на другом сервере оставим переадресацию.
Настройки для Mail.Ru:
От: bomber@rambler.ru
Ответить автоматически: ответ с mail.ru
Настройки для Rambler.Ru:
From is: bomber@mail.ru
Forward To: bomber@mail.ru
На этот раз отошлем письмо с Rambler.Ru. Что самое интересное, теперь оно прошло1.5 круга, то есть мы имеем 3-и его варианта. Следуя старому опыту, снова изучим его содержимое.
Фрагмент исходного сообщения, которое было отправлено с Rambler.Ru.
1.01 Return-path: < bomber @rambler.ru>
1.02 From: "Tester Testenko - Rambler.Ru" < bomber @rambler.ru>
1.03 To: bomber@mail.ru1.04 Message-ID: <web-260176963@mail2.rambler.ru>
Это то же самое письмо, вернувшееся на Rambler.Ru, после его обработки фильтром на Mail.Ru.
2.01 Return-Path: <bomber.autoreply@mail.ru>
2.02 From: "Tester Testenko - Mail.Ru" <bomber@mail.ru>
2.03 To: "Tester Testenko - Rambler.Ru" <bomber@rambler.ru>
2.04 Message-Id: <E1Dvshq-00060M-00.tester128-autoreply-list-ru@mx8.mail.ru>
2.05 X-AutoReply: bomber@mail.ru
2.06 Precedence: bulk
2.07 Reply-To: bomber.autoreply@mail.ru
2.08 In-Reply-To: <web-260176963@mail2.rambler.ru>
И опять-таки оно, но вернувшееся на Mail.Ru:
3.01 Return-path: <bomber@rambler.ru>
3.02 X-Autogenerated: Forward
3.03 From: "Tester Testenko - Rambler.Ru" <bomber@rambler.ru>
3.04 To: bomber@mail.ru
3.05 Message-ID: <redirect-260180405@mail2.rambler.ru>
3.06 X-AutoReply: bomber@mail.ru
3.07 Precedence: bulk
3.08 X-Original-Return-Path: <bomber.autoreply@mail.ru>
3.09 X-Original-Reply-To: bomber.autoreply@mail.ru
3.10 In-Reply-To: <1122020993.3685204339@mx11.mail.ru>
3.11 X-Original-From: "Tester Testenko - Mail.Ru" <bomber@mail.ru>
3.12 X-Original-Message-Id: <E1Dvsv2-0006FM-00.tester128-autoreply-list-ru@mx11.mail.ru>
Что ж, ситуация особо не изменилась, хотя полученные результаты говорят уже намного больше о механизмах блокирования писем этих серверов. В первую очередь, хочу заметить, что опять-таки процесс был остановлен на Mail.Ru. Но почему снова один и тот же сервер, неужели Rambler.Ru не проводит проверок писем? Совершенно нет, но я упущу анализ последующих неудачных экспериментов, потому что выводы можно сделать уже сейчас.
Посмотрите на письмо 3, в нем наглядно видны печальные последствия не стандартизированной работы этих двух серверов. Дело в том, что генерируемые ими поля в заголовке письма, имеющие одинаковое функциональное предназначение, носят различные имена. Например, добавленное в письмо поле 2.05, сообщает для Rambler.Ru, что письмо ответа сгенерированно автоматически. Он же в свою очередь, не "замечает" этого и создает ответ. Причем, на этот раз, добавляет поле 3.02. И это только одно из полей, а вы взгляните, сколько их там: 3.01, 3.02, 3.06, 3.08-3.12. Это то, что касается информации о маршруте письма. Далее, реальное имя отправителя раскрывает характер происхождения полученного письма (взгляните, например на 2.01, и т.д.).
Исходя из полученных данных, можно говорить о том, что одно письмо не может бесконечно блуждать между двумя серверами (вариант с большим их количеством не рассматривается, ввиду его непрактичности) потому что в заголовке письма остается информация об его маршруте. Следовательно, растет и его объем. Что в свою очередь постепенно увеличивает затраты времени на транспортировку и в конце концов, приведет к блокированию письма из-за недопустимо больших его размеров (ведь речь идет о бесплатных почтовых серверах).
Еще один очень важный момент – адрес отправителя после фильтрации может оказаться фиктивным. В таком случае, функциональность опции "ответить автоматически" обречена на провал. Так, если выставить соответствующие установки на обоих серверах, то "ответить на ответ" не выйдет.
Для подтверждения вышеописанного, я предлагаю проверить такую схему:
1. Mail.Ru отсылает уведомление на bomber@rambler.ru о получении новых писем.
2. Rambler.Ru пересылает всю входящую корреспонденцию на bomber@mail.ru.
Таким образом, фильтры на обоих серверах гарантированно отвечают на константные, предопределенные почтовые адреса. А Mail.Ru, каждый виток в цикле, создает новое письмо ответа (уведомление) и поэтому оно не должно быть заблокировано при транспортировке.
И действительно, на этот раз теория не отличается от практики. Однажды отослав письмо с Rambler.Ru на Mail.Ru, автоматическая система фильтров начинает прекрасно справляться со своими обязанностями. За несколько секунд на обоих почтовых адресах появляется около 30-ти писем. Чтобы остановить систему, необходимо отключить фильтр на одном из почтовых ящиков.