Есть некий проект, пользователи которого пишут друг другу сообщения, причем уведомление о приходе нового сообщения отправляется по электронной почте непосредственно пользователю. Стандартная схема, как и на многих других сайтах, не так ли? Подавляющее большинство наших пользователей имеет почтовые адреса на mail.ru, list.ru и проч.
Выглядит сообщение так:
«ФИО написал Вам сообщение на xxxx.ру.
Прочитать:
xxxx.ru/profile/messages/xxxx/»
Невинное сообщение. Естественно, никакого спама тут нет и в помине. Все сообщения разные, отличается текст сообщения (либо subject).
Проблема начинается, когда рассылается сообщение на всех пользователей сайта (~2 письма в секунду, общее к-во ~50000). Начиная с какого-то порога (примерно 20000 писем) mail.ru реджектит почту, выдавая ошибку 550. Так ведет себя только mail.ru. Никакая другая почтовая система так не делает. Вот какое сообщение об ошибке приходит на КАЖДОЕ отправленное письмо (во всех сообщениях разные Error code, но текст один и тот же):
This is the mail system at host xxxxxxx.<br/>
<br/>
I'm sorry to have to inform you that your message could not<br/>
be delivered to one or more recipients. It's attached below.<br/>
<br/>
For further assistance, please send mail to postmaster.<br/>
<br/>
If you do so, please include this problem report. You can<br/>
delete your own text from the attached returned message.<br/>
<br/>
The mail system<br/>
<br/>
<xxxx@list.ru>: host mxs.mail.ru[94.100.176.20] said: 550 spam message<br/>
rejected. Please visit <a href="http://mail.ru/notspam/">mail.ru/notspam/</a> or report details to<br/>
abuse@corp.mail.ru. Error code:<br/>
FB188D0B1941C920A91915BA1432E60E541BC971328137E499D77B1741DEFC22B0B67947ACA01B0A07FC27F77F28AA7EF28E7B1C0639918B33AF190C3B5047A9<br/>
(in reply to end of DATA command)<br/>
Когда трафик спадает, поведение SMTP-сервера на mail.ru возвращается в прежнее русло.
Затем опять та же самая ошибка и т.д.
Через службу поддержки ( abuse@corp.mail.ru ) решить эту, казалось бы, элементарную задачку, оказалось делом неподъемным (я сделал 3-4 «подхода», затратив полгода, затем бросил).
Служба поддержки обычно действует следующим образом:
- Сначала долго и нудно просит меня заново переслать то оригинальное письмо, то ошибку, то служебные заголовки, то плейнтекст исходного письма без заголовков, то с заголовками, то в аттачменте, то без аттачмента, периодически отвечая, что оригинал письма в битой кодировке (при том, что он в аттачменте !!!) или отсутствуют служебные заголовки (при том, что они присутствуют!!!). В последнее время они полюбили такой способ изматывания пользователей: создайте, мол, новый тикет, отправив туда текст оригинального письма, в ответ вам придет ticket id, и затем отправьте этот ticket id нам в ответ на это письмо. И это при том, что вся (!!!) необходимая информация уже содержалась в самом первом моем обращении в с.п.! На этапе 1) теряется от полудня до дня. Обычно для быстрого перехода на следующий этап я пишу такое:
«В чем заключается битость кодировки и какие конкретно служебные заголовки вам нужны? Это ровно то письмо, которое упало на SMTP mail.ru.» В этом случае мне отвечают следующее (см. 2)
- Мне сообщается, что моя проблема передана «для решения специалистам».
- На следующий день сообщается такое: «Письмо, которое Вы нам прислали, успешно проходит наши фильтры. Убедитесь, что фильтры сработали именно на данное письмо. Если же ошибка повторяется снова с другим письмом, пришлите письмо, которое Вы не можете отправить с указанием полного текста ошибки, возникающей при его отправке».
Действительно, с одной стороны письмо проходит фильтры, потому что очевидно, что это не спам, и без «передачи специалистам», с другой — не проходит, потому что проблема не в самОм письме, а в количестве писем или в частоте их отсылки. Контент письма в данном случае никак не влияет, о чем можно было догадаться по хешкоду из самого первого обращения и пропустить этапы 1), 2), 3).
- Если попытаться донести эту идею до саппорта, он отвечает так:
«Здравствуйте.
Вы превышаете максимально допустимое количество отправленных сообщений.
Для организации рассылки писем на большое количество адресов, Вы можете
воспользоваться нашим сервисом — content.mail.ru/»
На этом обычно театр абсурда заканчивается, потому что ответить на это уже нечего. Использование content.mail.ru в наши планы не входит (хотя, вероятно, по мнению службы поддержки, google, yahoo, yandex, ..., безусловно, это используют, потому что они шлют почту в десятки, сотни, тысячи раз интенсивнее нас). Информация о том, что конкретно в моем случае превышается: частота отправки писем либо общее количество за единицу времени и на сколько превышается, у саппорта отсутствует. Я сделал как-то попытку узнать о конкретных цифрах лимита у саппорта, на что пришел такой ответ:
«Мы разрешаем:
— с одного IP-адреса — 45 писем в первую минуту и 3 письма в последующие.
— с одного ящика — 15 писем в минуту, потом можно посылать только 1 письмо в минуту.»
Замечательно! Если бы это было так, никакая почта бы вообще никуда не ходила (что такое «последующие» минуты, также непонятно. Пожизненно, что ли, 3 письма в минуту?). С.П., видимо, думает, что я отправляю почту на mail.ru через сам же веб-интерфейс mail.ru.
Что нужно сделать для решения этой проблемы? Казалось бы, взял Error code FB188D0B1941C920A91915BA1432E60E541BC971328137E499D77B1741DEFC22B0B67947ACA01B0A07FC27F77F28AA7EF28E7B1C0639918B33AF190C3B5047A9 и переслал его программистам. Они посмотрели, почему он возникает и сообщили саппорту, а затем мне. Но этого по неизвестной мне причине не происходит.
Дорогие хабраюзеры! Помогите! Служба поддержки непробиваема! Отправлял мыло и в директорат mail.ru, ответа нет. Надо «пролечить» или mail.ru, или наш проект во что бы то ни стало! Не принимаются предложения «Уменьшите частоту отправки писем». Принимаются: «Добавьте такой-то заголовок в письмо», «Пропишите SPF-запись» (уже прописано) и т.д.