|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Valentin Nechayev 2:5020/400 22 Mar 2003 01:58:03 To : Alexander Barvinsky Subject : Re: sendmail2 -------------------------------------------------------------------------------- >>> Alexander Barvinsky wrote: VN>> С этим вообще нельзя бороться без патча на код. К сожалению. VN>> Можно сделать косвенные регуляторы, но они слабоэффективны. VN>> Прямой регулятор я сынтегрировал в своё дерево... AB> можно diff? ftp://segfault.kiev.ua/pub/sendmail/sendmail-8.11.6-worklock.patch на 8.12, кажется, лёг без изменений. Ещё может помочь такое: - --- savemail.c.0 Fri Mar 21 23:43:29 2003 +++ savemail.c Fri Mar 21 23:43:49 2003 @@ -696,7 +696,7 @@ markstats(ee, NULLADDR, STATS_NORMAL); /* actually deliver the error message */ - sendall(ee, SM_DELIVER); + sendall(ee, SM_QUEUE); /* restore state */ dropenvelope(ee, true, false); Это приводит к тому, что отлупы не доставляются сразу (вообще, тут дефолт идиотский - отлупы доставляются сразу, даже если задать явно -odq для прогонщика очереди...), а вместо этого ложатся в очередь. Чтобы брался delivery mode из командной строки или конфига, надо задать SM_DEFAULT в качестве второго параметра sendall(). Ещё можно SM_FORK - тогда их доставка будет форкаться и уходить в фон - а если наложен worklock patch, на них будет ограничение. Hо для твоей ситуации лучше всего именно SM_QUEUE - будет "резиновая" очередь, которая будет растягиваться вместо того, чтобы давать дурную нагрузку. AB>>> и еще. как заставить sendmail не получать письмо а потом проверять AB>>> на виртуальном хосте наличие адресата, а сразу проверить и не AB>>> получая дать пинка? VN>> Можно мильтеровым фильтром, можно через lookup по табличке в рулесете VN>> Local_check_rcpt (рулесет придётся написать, готового нет). AB> не понял постановку. можно слегка более развернуто? Пусть виртуальный хост zuka.com. Получаем (регулярно, по крону) откуда-то список ящиков на нём и делаем что-то вида while read X; do echo $X 1; done | makemap hash /etc/mail/zuka-users.db В конфиг вставляем: Kzukausers hash /etc/mail/zuka-users SLocal_check_rcpt R$* $: $>3 $1 R$*<@zuka.com.> $@ $>CheckZukaUser $1 SCheckZukaUser R$* $: $(zukausers $1 $: $) R$@ $@ $#error $@ No such user R$* $@ OK Hе проверял, но должно работать (м.б. с минимальными правками) -netch- --- ifmail v.2.15dev5 * Origin: Dark side of coredump (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/7368f9c548ab.html, оценка из 5, голосов 10
|