sendmail+milter problem
Модераторы: Trinity admin`s, Free-lance moderator`s
sendmail+milter problem
Люди, помогите plz. Проблема пустяковая, но очень неприятная: в sendmail.cf пытаюсь настроить таймауты для фильтра - ничего не выходит.
В том же sendmail.cf была строка:
Xfilter1, S=local:/var/mail_filter/filter.sock, T=C:5m;S:5m;R:10m;E:20m
Все было нормально. Добавил F=T и начались проблемы, т.е. стало:
Xfilter1, S=local:/var/mail_filter/filter.sock, F=T, T=C:5m;S:5m;R:10m;E:20m
При запуска sendmail'a выдает ошибку:
Initializing SMTP port. (sendmail)WARNING: Xfilter1: local socket name /var/mail_filter/filter.sock missing
а в /var/mail_filter/ создается файл с именем "filter1.sock, F=T"
В чем тут дело?
В том же sendmail.cf была строка:
Xfilter1, S=local:/var/mail_filter/filter.sock, T=C:5m;S:5m;R:10m;E:20m
Все было нормально. Добавил F=T и начались проблемы, т.е. стало:
Xfilter1, S=local:/var/mail_filter/filter.sock, F=T, T=C:5m;S:5m;R:10m;E:20m
При запуска sendmail'a выдает ошибку:
Initializing SMTP port. (sendmail)WARNING: Xfilter1: local socket name /var/mail_filter/filter.sock missing
а в /var/mail_filter/ создается файл с именем "filter1.sock, F=T"
В чем тут дело?
- Stranger03
- Сотрудник Тринити
- Сообщения: 12979
- Зарегистрирован: 14 ноя 2003, 16:25
- Откуда: СПб, Екатеринбург
- Контактная информация:
Re: sendmail+milter problem
У меня строка выглядит так:usama писал(а):Xfilter1, S=local:/var/mail_filter/filter.sock, F=T, T=C:5m;S:5m;R:10m;E:20m
Код: Выделить всё
Xspamassassin, S=local:/var/run/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m
- corvax
- free-lance moderator
- Сообщения: 877
- Зарегистрирован: 06 авг 2004, 17:21
- Откуда: Kiev, Ukraine
- Контактная информация:
Re: sendmail+milter problem
на самом деле это просто указаны разные действия в случае дефера от фильтра. у автора вопроса указан tampfail, а в вышеприведенной строке - acceptStranger03 писал(а):У меня строка выглядит так:usama писал(а):Xfilter1, S=local:/var/mail_filter/filter.sock, F=T, T=C:5m;S:5m;R:10m;E:20mКод: Выделить всё
Xspamassassin, S=local:/var/run/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m
использовать sendmail.mc вместо sendmail.cf в любом случае идеологически более правильно, но синтаксически конструкция из корневого сообщения треда правильная. поэтому непонятно, почему sendmail некорректно отпарсил строкуStranger03 писал(а):Вопрос, а чем не устраивает m4?
--
/corvax
/corvax
- Stranger03
- Сотрудник Тринити
- Сообщения: 12979
- Зарегистрирован: 14 ноя 2003, 16:25
- Откуда: СПб, Екатеринбург
- Контактная информация:
Re: sendmail+milter problem
Дык в том то все и дело, не совсем понятна проблема. Синтаксис вроде бы правильный. Можно попробовать конфиг сляпать из mc.corvax писал(а):использовать sendmail.mc вместо sendmail.cf в любом случае идеологически более правильно, но синтаксически конструкция из корневого сообщения треда правильная. поэтому непонятно, почему sendmail некорректно отпарсил строку
- Stranger03
- Сотрудник Тринити
- Сообщения: 12979
- Зарегистрирован: 14 ноя 2003, 16:25
- Откуда: СПб, Екатеринбург
- Контактная информация:
Re: sendmail+milter problem
А никто и не говорил, что в моей строке другая реакция на событие. Чисто теоретически, если свалится спамердемон, то мне как бы насрать. Ну пройдут письма мимо фильтра, ну и что. А вот мимо антивируса это крайне нежелательно.corvax писал(а):на самом деле это просто указаны разные действия в случае дефера от фильтра. у автора вопроса указан tampfail, а в вышеприведенной строке - accept
- corvax
- free-lance moderator
- Сообщения: 877
- Зарегистрирован: 06 авг 2004, 17:21
- Откуда: Kiev, Ukraine
- Контактная информация:
Re: sendmail+milter problem
это реакция не на defer от spamd, а на defer от spamass-milterStranger03 писал(а):А никто и не говорил, что в моей строке другая реакция на событие. Чисто теоретически, если свалится спамердемон, то мне как бы насрать. Ну пройдут письма мимо фильтра, ну и что. А вот мимо антивируса это крайне нежелательно.corvax писал(а):на самом деле это просто указаны разные действия в случае дефера от фильтра. у автора вопроса указан tampfail, а в вышеприведенной строке - accept
в остальном согласен (accept в случае defer'а от spamass-milter или spamd и tempfail в случае defer'а от антивирусных milter'ов)
--
/corvax
/corvax
- Stranger03
- Сотрудник Тринити
- Сообщения: 12979
- Зарегистрирован: 14 ноя 2003, 16:25
- Откуда: СПб, Екатеринбург
- Контактная информация:
Re: sendmail+milter problem
Да не суть, мы друг-друга поняли,corvax писал(а):это реакция не на defer от spamd, а на defer от spamass-milter

Re: sendmail+milter problem
Пробовал я и из sendmail.mc собирать - таже фигня. Может все дело в версии sendmail'a - у меня 8.12.7.Stranger03 писал(а):У меня строка выглядит так:usama писал(а):Xfilter1, S=local:/var/mail_filter/filter.sock, F=T, T=C:5m;S:5m;R:10m;E:20mВопрос, а чем не устраивает m4?Код: Выделить всё
Xspamassassin, S=local:/var/run/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m
И еще вопрос - процесс фильтра постоянно растет(в смысле памяти). Растет до тех пор, пока не схавает всю оперативу и ядро его не грохнет. Это моя ошибка или глюки libmilter'a? Просто в форумах я видел много подобных сообщений, но нигде внятно не сказано как с этим бороться. У меня OС Linux SuSE 8.2
- corvax
- free-lance moderator
- Сообщения: 877
- Зарегистрирован: 06 авг 2004, 17:21
- Откуда: Kiev, Ukraine
- Контактная информация:
Re: sendmail+milter problem
версия sendmail'а в данном случае роли не играет. вернее, 8.12.7 вполне подходящаяusama писал(а):Пробовал я и из sendmail.mc собирать - таже фигня. Может все дело в версии sendmail'a - у меня 8.12.7.Stranger03 писал(а):У меня строка выглядит так:usama писал(а):Xfilter1, S=local:/var/mail_filter/filter.sock, F=T, T=C:5m;S:5m;R:10m;E:20mВопрос, а чем не устраивает m4?Код: Выделить всё
Xspamassassin, S=local:/var/run/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m
вопрос в том, что может там где-то вместо пробела табуляция указана или что-то в этом роде?
для начала надо указать, какой милтер используется. до сих пор упоминался какой-то химерный filter1usama писал(а):И еще вопрос - процесс фильтра постоянно растет(в смысле памяти). Растет до тех пор, пока не схавает всю оперативу и ядро его не грохнет. Это моя ошибка или глюки libmilter'a? Просто в форумах я видел много подобных сообщений, но нигде внятно не сказано как с этим бороться. У меня OС Linux SuSE 8.2
--
/corvax
/corvax
Re: sendmail+milter problem
Да нет, везде все пробелы были тщательно перепровереныcorvax писал(а):версия sendmail'а в данном случае роли не играет. вернее, 8.12.7 вполне подходящаяusama писал(а):Пробовал я и из sendmail.mc собирать - таже фигня. Может все дело в версии sendmail'a - у меня 8.12.7.Stranger03 писал(а): У меня строка выглядит так:Вопрос, а чем не устраивает m4?Код: Выделить всё
Xspamassassin, S=local:/var/run/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m
вопрос в том, что может там где-то вместо пробела табуляция указана или что-то в этом роде?

для начала надо указать, какой милтер используется. до сих пор упоминался какой-то химерный filter1[/quote]usama писал(а):И еще вопрос - процесс фильтра постоянно растет(в смысле памяти). Растет до тех пор, пока не схавает всю оперативу и ядро его не грохнет. Это моя ошибка или глюки libmilter'a? Просто в форумах я видел много подобных сообщений, но нигде внятно не сказано как с этим бороться. У меня OС Linux SuSE 8.2
Мильтер собственного производства, и этим все осложняется - то ли я где-то ошибку допустил, то ли libmilter глючный. А совсем плохо то, что я этот фильтр писал не от начала и до конца, а только частично дописавыл нужные мне функции.
- corvax
- free-lance moderator
- Сообщения: 877
- Зарегистрирован: 06 авг 2004, 17:21
- Откуда: Kiev, Ukraine
- Контактная информация:
Re: sendmail+milter problem
ну что, начинаем разбирать все с начала?
он что, создает файл сокета на основании строки из sendmail.cf?
тогда это ошибка фильтра. он не может корректно пропарсить строку из sendmail.cf и получить оттуда имя файла сокета.
что это за milter?
sendmail пишет, что не может найти файл сокета. и пишет абсолютно корретное имя файлаusama писал(а):При запуска sendmail'a выдает ошибку:
Initializing SMTP port. (sendmail)WARNING: Xfilter1: local socket name /var/mail_filter/filter.sock missing
а кто же создает файл сокета? должен создавать сам milterusama писал(а):а в /var/mail_filter/ создается файл с именем "filter1.sock, F=T"
В чем тут дело?
он что, создает файл сокета на основании строки из sendmail.cf?
тогда это ошибка фильтра. он не может корректно пропарсить строку из sendmail.cf и получить оттуда имя файла сокета.
что это за milter?
--
/corvax
/corvax
- corvax
- free-lance moderator
- Сообщения: 877
- Зарегистрирован: 06 авг 2004, 17:21
- Откуда: Kiev, Ukraine
- Контактная информация:
Re: sendmail+milter problem
судя по кривому парсингу - libmilter ни при чем совершенноusama писал(а):Мильтер собственного производства, и этим все осложняется - то ли я где-то ошибку допустил, то ли libmilter
а не кажется ли вам, уважаемый, что эти детали были важны при первоначальной формулировке вопроса?usama писал(а):глючный. А совсем плохо то, что я этот фильтр писал не от начала и до конца, а только частично дописавыл нужные мне функции.
может в какой-то FAQ включить ссылку на smart questions?
--
/corvax
/corvax
Re: sendmail+milter problem
Мильтер собственного происзводста. Вот код запуска:corvax писал(а):ну что, начинаем разбирать все с начала?
sendmail пишет, что не может найти файл сокета. и пишет абсолютно корретное имя файлаusama писал(а):При запуска sendmail'a выдает ошибку:
Initializing SMTP port. (sendmail)WARNING: Xfilter1: local socket name /var/mail_filter/filter.sock missing
а кто же создает файл сокета? должен создавать сам milterusama писал(а):а в /var/mail_filter/ создается файл с именем "filter1.sock, F=T"
В чем тут дело?
он что, создает файл сокета на основании строки из sendmail.cf?
тогда это ошибка фильтра. он не может корректно пропарсить строку из sendmail.cf и получить оттуда имя файла сокета.
что это за milter?
BEGIN:
{
set_uid_gid();
# Get myfilter's connection information'
# from /etc/mail/sendmail.cf
Sendmail::Milter::auto_setconn("filter1") || die "auto_setconn failed\n";
Sendmail::Milter::register("filter1",
\%my_milter_callbacks, SMFI_CURR_ACTS) || die "register failed\n";
Sendmail::Milter::main();
print "\nFilter ended\n";
# Never reaches here, callbacks are called from Milter.
}
Re: sendmail+milter problem
Но при чем здесь мой мильтер? Во-первых, до изменения настроек sendmail'a он отлично парсил эту самую строку. Во-вторых, код запуска был взят из примера, идущего с Sendmail::Milter - не думаю что там допущены ошибки.corvax писал(а):судя по кривому парсингу - libmilter ни при чем совершенноusama писал(а):Мильтер собственного производства, и этим все осложняется - то ли я где-то ошибку допустил, то ли libmilter
а не кажется ли вам, уважаемый, что эти детали были важны при первоначальной формулировке вопроса?usama писал(а):глючный. А совсем плохо то, что я этот фильтр писал не от начала и до конца, а только частично дописавыл нужные мне функции.
может в какой-то FAQ включить ссылку на smart questions?
Я думал, что ошибка лежит на поверхности, просто я ее не вижу...
- corvax
- free-lance moderator
- Сообщения: 877
- Зарегистрирован: 06 авг 2004, 17:21
- Откуда: Kiev, Ukraine
- Контактная информация:
Re: sendmail+milter problem
1. я понимаю, что есть тут люди, которые юзали Sendmail::Milter. но может таки не всем понятно, что это кусок кода perl'ового milter'а. настоятельно советую обратить внимание на неудовлетворительное качество постановки вопросовusama писал(а):Мильтер собственного происзводста. Вот код запуска:
BEGIN:
{
set_uid_gid();
# Get myfilter's connection information'
# from /etc/mail/sendmail.cf
Sendmail::Milter::auto_setconn("filter1") || die "auto_setconn failed\n";
2. религия не позволяет выполнить auto_getconn и посмотреть глазами не ее результат?
значение, возвращаемое функциями auto_setconn и register надо таки проверять. это есть очень плохой стиль программирования. даже функция main возвращает разные значения при успешном и неуспешном завершенииusama писал(а): Sendmail::Milter::register("filter1",
\%my_milter_callbacks, SMFI_CURR_ACTS) || die "register failed\n";
Sendmail::Milter::main();
print "\nFilter ended\n";
# Never reaches here, callbacks are called from Milter.
}
вообще-то вместе с Milter.pm поставляется sample.pl, в который очень даже стОит заглянуть. хотя бы для того, чтобы понять, что нужно код своего фильтра писать чуть более аккуратно
p. s. в любом случае вышеописанная проблема с сокетом - это не проблема MTA
--
/corvax
/corvax
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 26 гостей