Честно говоря, на фоне проблем, порождаемых данной ситуацией , сама по себе отложенная отправка писем из failed меня волнует мало. На данный момент все 9 застрявших писем - это полуспам. Если там застрянет важное письмо, я найду способ доставить его получателю.Поэтому и выбирается вариант "попытаться отправить позже, в соответствии с интервалами отложенной отправки"
Меня гораздо больше волнует застревание почты в /var/drweb/msgs/out и не удаление почты из /var/drweb/msgs/in.
Я не могу предусмотреть ВСЕГО. Например, в сентябре одно из проблемных писем высылалось отправителем несколько раз за сутки.
Хорошо, если отправитель всегда будет соблюдать разумный интервал отправки. А если он начнет лупить эти письма очередью? Да у меня скрипт только и будет рестартовать демоны, и если меня не будет рядом, то хаоса не избежать.
Я написала рулсеты к sendmail.cf, отрабатывающие те ограничения, которые у меня сработали, на этапе smtp-диалога.
Так что проблем, вызванных именно "too many hops" & "headers too large" я , скорее всего, смогу избежать.
Надо будет показать рулсеты sendmail-гуру, но я уже предвижу ответ Claus Assmann, что это конкретный изврат...
И мне ... придется наябедничать - не обессудьте ...
Но! Еще остаются другие ограничения, и вот, например, это - message size exceeds maximum - я не смогу обработать на этапе smtp-диалога по понятной причине.
Теперь по поводу застревания почты в /var/drweb/msgs/in.
18 октября и 12 ноября в часы пиковой нагрузки drweb засбоил. В октябре была внешняя конкретная атака, пришлось drweb отключить на часок. В ноябре уже мои юзеры постарались. К самому факту сбоя претензий не имею (сервер Intel® Core™2 Duo CPU E8400 @ 3.00GHz, ОП 2Gb) - в планах переезд на более мощный сервер.
Претензии мои к тому, что вся почта осталась навеки в /var/drweb/msgs/in (347 писем) несмотря на то, что она была доставлена получателям.
Скрипт написала, убедилась в доставке каждого письма. Обработку логов ЗНАЧИТЕЛЬНО усложнило то, что в половине случаев DrWeb не записывал в лог номер директории, и при отсутствии в Received: номера sendmail-процесса идентификация писем происходила на основе sender&recipient, выцарапанных из файла .envelope, и IP&date&time&msgid(если_он_вообще_был) из .msg.
/var/drweb/msgs/in/2/000A5892.msg:
...
Как вы, наверное, догадываетесь, на это ушла уйма времени.
И еще, наверное, вы догадываетесь, что у меня есть более важные занятия, нежели постоянно караулить наполнение директорий out & in, а потом бесконечно обрабатывать логи.
В общем, мне не весело. Я В УНЫНИИ. НЕ ЗНАЮ, КАК ВЫ ...
Сообщение было изменено userr: 14 Ноябрь 2012 - 20:02
скрыл частную инфу.