[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Заменить sendmail на?



В сообщении от 31 Август 2006 09:55 Nizamov Shawkat написал(a):
> 
> > Посоветуйте замену sendmail-у пожалуйста (про свои проблемы я тут как-то
> > спрашивал - рвет соединение с некоторыми серверами, не всегда и по
> > непонятной причине, без следов в логах).
> > 
> 
> была одна такая красивая история (причем реальная) - про сендмейл
> который не мог отправить письмо далее чем на 300 миль %)

 Читать всем!

======================
 Я хочу рассказать историю службы техподдержки, которая может показаться
невероятной далеким от этой работы людям. Но мне хочется изложить ее широкой
аудитории - хотя бы потому, что это прекрасная рассказка под выпивку в
коллективе коллег. Кое-что слегка приукрашено, но это - для красоты
рассказа, все важные детали сохранены.

 Несколько лет назад я работал в службе технической поддержки электронной
почты университетского кампуса. Мне позвонил заведующий кафедрой статистики.

 <У нас проблема с отправкой почты с кафедры>
 Я:
 <В чем проблема?>

 <Мы не можем послать электронную почту больше чем на 500 миль>

 Я роняю чашку с кофе. <Повторите, пожалуйста?>

 <Мы не можем отправить письмо адресатам, находящимся далее 500 миль
отсюда>, повторяет завкафедрой. <Точнее, 520. Но не дальше>.

 Я пытаюсь собраться с мыслями. Крыша начинает медленно меня покидать, но
нельзя позволить крыше уйти в разговоре с завкафедрой. Даже завкафедрой
статистики. <Хммм... Понимаете, принцип доставки электронной почты не
зависит от расстояния. Почему Вы думаете, что не можете отправлять почту
далее 500 миль?>

 <Я не думаю, я знаю> - довольно жестким тоном заявляет завкафедрой.
 <Когда мы впервые это заметили, несколько дней назад...>
 <Вы ждали несколько ДНЕЙ?> - перебиваю я уже слегка дрожащим голосом - <и
вы обходились без почты?>
 <Нет. Мы могли отправлять письма, но...>.
 <Но не далее 500 миль, сэр? Но почему же Вы не позвонили раньше?>
 <Ну, у нас не было достаточного количества данных до сегодняшнего дня>.
 Ну да. Кафедра статистики, как-никак. О Господи...
 <Ну, так или иначе - я попросил наших геостатистиков разобраться...>

 Так. Геостатистики.

 <...и у них получилась карта, показывающая расстояние, на которое мы можем
отсылать почту. Чуть больше 500 миль. На некоторые адреса, находящиеся
ближе, мы тоже не можем отправить почту с первой попытки - но дальше 500
миль мы не можем отправить ничего вообще>.

 <Я понял, сэр>. Крыша-таки решила меня оставить. <Когда это началось? Вы
сказали - несколько дней назад. Вы перенастраивали Ваши сервера в последнее
время?>

 <Да, приходили ребята от производителя, пропатчили сервер и перезагрузили
его. Но я специально у них спросил - они говорят, что почты это никоим
образом не коснулось>.

 <Хорошо, давайте я посмотрю, что присходит, и перезвоню Вам> - ответил я,
искренне надеясь, что так не шутят даже на Первое Апреля - а сегодня далеко
не Первое Апреля. Хотелось догадаться, кто из моих знакомых мог устроить
подобное представление.

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

 Далее я попробовал послать письмо в Мемфис (600 миль). Отлуп.
 Бостон, отлуп. Детройт, отлуп. Я открыл адресную книгу и начал пытаться
сузить круги. Нью-Йорк (420 миль) - работает, Провиденс (580 миль) - отлуп.

 У меня появились сомнения в собственной вменяемости. Я решил попробовать
отправить письмо своему другу, живущему в Северной Каролине, но работающему
с провайдером в Сиэттле.
 Благодарю Тебя, Господи. Отлуп. Если бы оказалось, что прохождение писем
зависит от того, где находится человек, их получающий - я бы сам, по
собственной инициативе и с гордо поднятой головой пошел бы сдаваться
санитарам.

 Поняв, наконец, что завкафедрой не бредит, я решил посмотреть на
sendmail.cf. Вполне нормальный sendmail.cf. Знакомый даже.

 Я сравнил его diff'ом со стандартным sendmail.cf у меня на диске. Он не
изменялся. Это был ровно тот же sendmail.cf, который я делал
собственноручно.
 Но опцию "FAIL_MAIL_OVER_500_MILES" я не включал, это точно.
 Каюк. Ну что еще попробовать? telnet по 25-му порту на сервер этой
гребаной кафедры.
 Сервер радостно отвечает, как ему и положено - blah-blah-blah, я, говорит,
SunOS.

 Стоп-стоп-стоп... SunOS sendmail? Sun тогда поставлял со своей
операционкой sendmail 5, хотя все нормальные люди уже работали с sendmail 8.
 Поскольку я - все-таки неплохой администратор, почта у меня ходила под
sendmail 8. Ну и опять-таки - поскольку я - человек, приученный к порядку, я
переписал sendmail.cf с нормальными, понятными именами переменных и опций.
Что с переменными и опциями делал sendmail 5, вы должны помнить.

 Так-так-так... Картинка собиралась. Мне снова захотелось кофе.
 Ребятки от Sun пропатчили операционку, но sendmail, в общем-то, тоже ее
часть. Они удачно закрыли дыры, но sendmail снова стал 5, а не 8. Но в одном
они были правы - sendmail.cf действительно никто не тронул. А какая разница,
для восьмой версии он или для пятой?

 Ну, короче говоря. Пятый (по крайней мере, в варианте Sun'а) - нормально
отрабатывал sendmail.cf от восьмого. Рулсеты-то не изменились.
 Но вот опции настройки, такие неприлично длинные - он считал чуть ли не
комментариями. Клал на них. А откомпилирован он был без настроек по
умолчанию.
 И, как честный человек, не найдя чего-то в sendmail.cf, он устанавливал
это в 0.

 Одна из успешно установленных в ноль настроек - таймаут для соединения с
удаленным SMTP - сервером. Поигравшись с этим сервером, я понял, что <ноль>
по его мнению - это около трех миллисекунд.

 Так. Ага...
 Сетка наша уже в то время была на коммутаторах, и задержек практически не
имела.
 Задержки снаружи - это, в общем. Было понятно.

 Ага. Скорость распространения электромагнитной волны.

 ОООПС....
 Умножаем время на скорость света, и получаем... и получаем...
 558.84719

 Пятьсот пятьдесят восемь миль.
====

--
  Макс



Reply to: