четверг, 29 июля 2010 г.

[prog] О том, как не просто просто отсылать уведомления по e-mail

Когда-то давным-давно, мой коллега написал инструмент для автоматического рестарта приложений на работающих в режиме 24x7 серверах. И добавил в этот инструмент полезную фичу: при падении и рестарте процесса на указанный в конфигурации e-mail отсылалось уведомление. Вроде бы важная и удобная штука.

Но таковой она была только до первого серьезного сбоя, когда процессы начали падать со страшной силой (из-за сбоя сети они при старте не могли установить подключение к БД и завершали свою работу). Рестарты шли где-то со скоростью нескольких раз в минуту. Соответственно, с таким же темпом рассылались почтовые уведомления. В результате чего почтовый ящик системного администратора, которому вся эта корреспонденция направлялась, оказался не просто засранным, а капитально засранным.

С тех пор, когда какое-то приложение начинает отсылать e-mail уведомления, я всегда делаю ограничитель – не более N исходящих писем за какой-то интервал времени. Например, не больше 3-х писем за 10 минут.

Но интересно другое. Раз в несколько лет кто-нибудь из молодых коллег, который по молодости не застал первого инцидента, делает свою отсылку e-mail-ов… Чтобы в очередной раз наступить на те же самые грабли и самому набить эту шишку. Тогда как я пребываю в полной уверенности, что о фактах “спам-рассылок” из-за непредвиденных ситуаций все знают, и используют ограничения на количество отсылаемых писем. Вот и получается, что тот, кто знает – молчит, а тот, кто не знает, даже не догадывается :/

Так что лучше я скажу:

Если нужно организовать рассылку e-mail уведомлений о каких-то событиях, то следует сразу же реализовать ограничение на количество отсылаемых e-mail-ов. Чтобы избежать массированной спам-рассылки при наступлении жопы (а она обязательно наступит).

PS. Думаю, не сложно было догадаться, что данный пост был вызван очередным фактом засирания моего почтового ящика самодельной e-mail рассылкой ;)

PPS. А еще в некоторых случаях кроме отсылки e-mail-ов, нужно рассылать уведомления и по SMS. С этим делом нужно быть вдвойне, а то и втройне осторожнее. SMS-ки подороже e-mail-ов будут ;)

1 комментарий:

bsivko комментирует...

>С тех пор, когда какое-то приложение начинает отсылать e-mail уведомления, я всегда делаю ограничитель – не более N исходящих писем за какой-то интервал времени. Например, не больше 3-х писем за 10 минут.

Один из вариантов - объединять множество писем в одно и отсылать одним. Соответственно объединение идет по адресам доставки.