Procmail - автоотвечик

На доскональное знание данной темы, не может претендовать, пожалуй ни один спец, из ныне живущих на земле. ;-)
Так поможем друг другу.

Модераторы: Trinity admin`s, Free-lance moderator`s

Ответить
vitaly
Power member
Сообщения: 35
Зарегистрирован: 16 авг 2005, 18:06

Procmail - автоотвечик

Сообщение vitaly » 22 авг 2005, 19:23

Люди подскажите плз, как сделать автоответчик, используя procmail и
formail .

Имеется /etc/mail/sendmail.cf (исходного *.mc файла нет).
Хотел заменить в /etc/mail/sendmail.cf следующие строки:

< Mlocal,               P=/usr/libexec/mail.local, F=lsDFMAw5:/|@qPrmn9S, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
---
на

> Mlocal,               P=/usr/local/bin/procmail, F=lsDFMAw5:/|@qSPfhn9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,

<               A=mail $u
---
на
>               A=procmail -Y -a $h -d $u

а потом перезапустить sendmail (/usr/sbin/sendmail -L sm-mta -bd -q30m)

Но вот тебе на - ничего не вышло. Ошибка  следующая:

554 5.0.0 /etc/mail/sendmail.cf: line 1193: unknown configuration line "r@ #
error @ nouser : "553 User address required""
554 5.0.0 /etc/mail/sendmail.cf: line 1453: unknown configuration line "r<+>
| <=2:*> <*>   : <1> | <4> | >2 <3> <?> <1> <>"

Я никогда не редактировал *.cf файлы, а получал их так:

/usr/bin/m4 /usr/share/sendmail/cf/m4/cf.m4 freebsd.mc > sendmail.cf


Ладно, решил бросить локальную настройку для всех, и настроить через .forward (chmod 0400), для конкретного пользователя.

cat .forward

#!/bin/sh

"|exec /usr/local/bin/procmail || exit 75"

пробовал и так

"|exec /usr/local/bin/procmail || exit 75"

и так


"| /usr/local/bin/procmail"

не работает :evil:  :evil:

cat .procmailrc

MAILDIR=$MAIL
DEFAULT=$MAIL
LOGABSTRACT=all
LOGFILE=$HOME/.procmail/log
FORMAIL=/usr/local/bin/formail
SENDMAIL=/usr/local/sbin/sendmail
VERBOSE=off

# Autoreply
:0 Hc
* !^FROM_DAEMON
* !^X-Loop: vitaly@domain
| (formail -r -A "X-Loop: vitaly@domain"; cat $HOME/.procmail/autoreply.txt) | $SENDMAIL -t (записано в одну строчку)

# Other
:0 H
$DEFAULT

Подскажите плз как заставить всё это работать.

Если бы предыдущий  админ не потёр *.mc - то уже б давно сделал.

vitaly
Power member
Сообщения: 35
Зарегистрирован: 16 авг 2005, 18:06

Сообщение vitaly » 23 авг 2005, 10:23

Если в $HOME/.forward записать  "|exec /usr/local/bin/procmail || exit 75" , то выдаётся следующее сообщение: exit 75"
 
(файл .forward находится в директории  yderbal)
(expanded from: yderbal)
o_voronina@ukr.net
   (reason: 550 bad sender rejected (mostly bad configured antivirus))
   (expanded from: evoronina)

  ----- Transcript of session follows ----- 550 5.7.1 /home/yderbal/.forward: line 3: "|exec /usr/local/bin/procmail || exit 75"... User user@domain doesn't have a valid shell for mailing to programs ... while talking to mxs.ukr.net.:
>>> DATA
<<< 550 bad sender rejected (mostly bad configured antivirus) 550 5.1.1 o_voronina@ukr.net... User unknown <<< 503 valid RCPT command must precede DATA

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Re: Procmail - автоотвечик

Сообщение corvax » 23 авг 2005, 12:09

vitaly писал(а):Люди подскажите плз, как сделать автоответчик, используя procmail и
formail .

Имеется /etc/mail/sendmail.cf (исходного *.mc файла нет).
Хотел заменить в /etc/mail/sendmail.cf следующие строки:

< Mlocal,               P=/usr/libexec/mail.local, F=lsDFMAw5:/|@qPrmn9S, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
---
на

> Mlocal,               P=/usr/local/bin/procmail, F=lsDFMAw5:/|@qSPfhn9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,

<               A=mail $u
---
на
>               A=procmail -Y -a $h -d $u

а потом перезапустить sendmail (/usr/sbin/sendmail -L sm-mta -bd -q30m)

Но вот тебе на - ничего не вышло. Ошибка  следующая:

554 5.0.0 /etc/mail/sendmail.cf: line 1193: unknown configuration line "r@ #
error @ nouser : "553 User address required""
554 5.0.0 /etc/mail/sendmail.cf: line 1453: unknown configuration line "r<+>
| <=2:*> <*>   : <1> | <4> | >2 <3> <?> <1> <>"
ну так надо посмотреть, что там в строках 1193 и 1453 и близлежащих
vitaly писал(а):Я никогда не редактировал *.cf файлы, а получал их так:

/usr/bin/m4 /usr/share/sendmail/cf/m4/cf.m4 freebsd.mc > sendmail.cf
cd /etc/mail && make cf
все остальное - от лукавого
вам же положили в /etc/mail файл Makefile, который учитывает больше ньюансов сборки sendmail.cf, чем вы сами
vitaly писал(а):Ладно, решил бросить локальную настройку для всех, и настроить через .forward (chmod 0400), для конкретного пользователя.

cat .forward

#!/bin/sh

"|exec /usr/local/bin/procmail || exit 75"

пробовал и так

"|exec /usr/local/bin/procmail || exit 75"

и так


"| /usr/local/bin/procmail"

не работает :evil:  :evil:
наверное не вспомню, в какой именно доке читал о .forward, но вы то откуда брали свои варианты?
vitaly писал(а):cat .procmailrc

MAILDIR=$MAIL
DEFAULT=$MAIL
LOGABSTRACT=all
LOGFILE=$HOME/.procmail/log
FORMAIL=/usr/local/bin/formail
SENDMAIL=/usr/local/sbin/sendmail
VERBOSE=off

# Autoreply
:0 Hc
* !^FROM_DAEMON
* !^X-Loop: vitaly@domain
| (formail -r -A "X-Loop: vitaly@domain"; cat $HOME/.procmail/autoreply.txt) | $SENDMAIL -t (записано в одну строчку)

# Other
:0 H
$DEFAULT

Подскажите плз как заставить всё это работать.
стОит для начала решить, нужно ли использовать procmail в качестве локального доставщика, или все же вы хотите запускать procmail из .forward?
vitaly писал(а):Если бы предыдущий  админ не потёр *.mc - то уже б давно сделал.
а что мешает заново нарисовать sendmail.mc?
--
/corvax

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 23 авг 2005, 12:12

vitaly писал(а):Если в $HOME/.forward записать  "|exec /usr/local/bin/procmail || exit 75" , то выдаётся следующее сообщение: exit 75"
 
(файл .forward находится в директории  yderbal)
(expanded from: yderbal)
o_voronina@ukr.net
   (reason: 550 bad sender rejected (mostly bad configured antivirus))
   (expanded from: evoronina)

  ----- Transcript of session follows ----- 550 5.7.1 /home/yderbal/.forward: line 3: "|exec /usr/local/bin/procmail || exit 75"... User user@domain doesn't have a valid shell for mailing to programs ... while talking to mxs.ukr.net.:
>>> DATA
<<< 550 bad sender rejected (mostly bad configured antivirus) 550 5.1.1 o_voronina@ukr.net... User unknown <<< 503 valid RCPT command must precede DATA
судя по всему, это ответ exim'а со стороны коллектора ukr.net'а
для начала я бы посоветовал нарисовать совсем простой .procmailrc (для начала просто с сохранением полученного письма в файл), чтобы не смешивать в одну кучу проблемы использования procmail'а и проблемы пересылки письма отправителю из этого procmailrc
--
/corvax

vitaly
Power member
Сообщения: 35
Зарегистрирован: 16 авг 2005, 18:06

Re: Procmail - автоотвечик

Сообщение vitaly » 23 авг 2005, 12:44

corvax писал(а):
cd /etc/mail && make cf
все остальное - от лукавого
вам же положили в /etc/mail файл Makefile, который учитывает больше ньюансов сборки sendmail.cf, чем вы сами
Makfiile - стёрли (может его где-нибудь взять и положить обратно. Версия sendmail-8.13.1)
corvax писал(а):
наверное не вспомню, в какой именно доке читал о .forward, но вы то откуда брали свои варианты?

В man procmail

 "|exec /usr/local/bin/procmail || exit 75" прописать в файл .forward.
corvax писал(а):
стОит для начала решить, нужно ли использовать procmail в качестве локального доставщика, или все же вы хотите запускать procmail из .forward?
Да мне сейчас всёравно как - главное чтобы всё это работало, а то будет мне ...
corvax писал(а):
а что мешает заново нарисовать sendmail.mc?

вот прейдется рисовать sendmail.mc заново (только вот надо разобраться, как включить поддержку spamassassin drweb в *.mc ).

vitaly
Power member
Сообщения: 35
Зарегистрирован: 16 авг 2005, 18:06

Сообщение vitaly » 23 авг 2005, 12:57

изменил .procmailrc, так что бы procmail ложил всё в оду директорию - и не работает (судя из всего этого через .forward настроить не получиться)

cat .procmailrc

SHELL=/bin/sh
MAILDIR=$HOME/Mail
DEFAULT=$MAILDIR/Default
LOGABSTRACT=all
LOGFILE=$HOME/.procmail/log
FORMAIL=/usr/local/bin/formail
SENDMAIL=/usr/local/sbin/sendmail
VERBOSE=off

# all mail
:0 H
$MAILDIR

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Re: Procmail - автоотвечик

Сообщение corvax » 23 авг 2005, 13:00

vitaly писал(а):
corvax писал(а):
cd /etc/mail && make cf
все остальное - от лукавого
вам же положили в /etc/mail файл Makefile, который учитывает больше ньюансов сборки sendmail.cf, чем вы сами
Makfiile - стёрли (может его где-нибудь взять и положить обратно. Версия sendmail-8.13.1)
в таких случаях важна не столько сама версия, сколько sendmail используется из системы или из портов. если из системы, то
cp /usr/src/etc/mail/Makefile /mail/Makefile
если из портов, то проще выполнить
portupgrade -f sendmail
поскольку я совершенно не помню, где там валяется Makefile для /etc/mail
vitaly писал(а):
corvax писал(а):наверное не вспомню, в какой именно доке читал о .forward, но вы то откуда брали свои варианты?

В man procmail

 "|exec /usr/local/bin/procmail || exit 75" прописать в файл .forward.
corvax писал(а):стОит для начала решить, нужно ли использовать procmail в качестве локального доставщика, или все же вы хотите запускать procmail из .forward?
Да мне сейчас всёравно как - главное чтобы всё это работало, а то будет мне ...
corvax писал(а):а что мешает заново нарисовать sendmail.mc?
вот прейдется рисовать sendmail.mc заново (только вот надо разобраться, как включить поддержку spamassassin drweb в *.mc ).
эта тема тут обсасывалась немерянное количество раз
--
/corvax

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 23 авг 2005, 14:16

vitaly писал(а):изменил .procmailrc, так что бы procmail ложил всё в оду директорию - и не работает (судя из всего этого через .forward настроить не получиться)

cat .procmailrc

SHELL=/bin/sh
MAILDIR=$HOME/Mail
DEFAULT=$MAILDIR/Default
LOGABSTRACT=all
LOGFILE=$HOME/.procmail/log
FORMAIL=/usr/local/bin/formail
SENDMAIL=/usr/local/sbin/sendmail
VERBOSE=off

# all mail
:0 H
$MAILDIR
а что в $HOME/.procmail/log пишется? и еще - пока лучше сделать VERBOSE=yes
--
/corvax

vitaly
Power member
Сообщения: 35
Зарегистрирован: 16 авг 2005, 18:06

Сообщение vitaly » 23 авг 2005, 14:36

corvax писал(а): а что в $HOME/.procmail/log пишется? и еще - пока лучше сделать VERBOSE=yes
Это я для себя в $HOME/.procmail/log положил.

Вот пересобрал  sendmail.cf, но при запуске sendmail (killall sendmail &&  /usr/sbin/sendmail -L sm-mta -bd -q30m) выдаётся следующее сообщение:
WARNING: Xspamassassin: local socket name /var/run/spamass-milter missing
Вложения

[Расширение mc было запрещено, вложение больше недоступно.]


Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 23 авг 2005, 15:05

vitaly писал(а):
corvax писал(а): а что в $HOME/.procmail/log пишется? и еще - пока лучше сделать VERBOSE=yes
Это я для себя в $HOME/.procmail/log положил.
это я понял. я имел ввиду, procmail в него хоть что-то пишет?
vitaly писал(а):Вот пересобрал  sendmail.cf, но при запуске sendmail (killall sendmail &&  /usr/sbin/sendmail -L sm-mta -bd -q30m) выдаётся следующее сообщение:
WARNING: Xspamassassin: local socket name /var/run/spamass-milter missing
spamass-milter не загружен или слушает другой сокет

p. s. ну и что за варварские способы перегружать sendmail?
--
/corvax

vitaly
Power member
Сообщения: 35
Зарегистрирован: 16 авг 2005, 18:06

Сообщение vitaly » 23 авг 2005, 15:28

corvax писал(а): это я понял. я имел ввиду, procmail в него хоть что-то пишет?
VERBOSE=yes и нечего в log не пишет
corvax писал(а): spamass-milter не загружен или слушает другой сокет
spamass-milter загружен (/var/run/spamass-milter.sock).
ps -ax | grep spam

487  ??  Is     1:48.47 /usr/local/bin/spamd -u spamassassin -a -c -d -r /var/run/spamd.pid (perl5.8.5)
 496  ??  Ss     5:23.01 /usr/local/sbin/spamass-milter -f -p /var/run/spamass-milter.sock -b alex (alex - это пользователь от имени которого он запускается?)

Ситуация следующая: при использовании своего  sendmail.cf выдаётс я ошибка, а при использовании  sendmail.cf, который работал до этого - всё нормально (даже варварским способом).
corvax писал(а): p. s. ну и что за варварские способы перегружать sendmail?
Неварварский способ это /etc/rc.d/sendmail restart или как?

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 23 авг 2005, 15:48

vitaly писал(а):
corvax писал(а): это я понял. я имел ввиду, procmail в него хоть что-то пишет?
VERBOSE=yes и нечего в log не пишет
corvax писал(а): spamass-milter не загружен или слушает другой сокет
spamass-milter загружен (/var/run/spamass-milter.sock).
ну, можно было и самому напрячься и сравнить это имя сокета с именем сокета из сообщения об ошибке
vitaly писал(а):ps -ax | grep spam

487  ??  Is     1:48.47 /usr/local/bin/spamd -u spamassassin -a -c -d -r /var/run/spamd.pid (perl5.8.5)
 496  ??  Ss     5:23.01 /usr/local/sbin/spamass-milter -f -p /var/run/spamass-milter.sock -b alex (alex - это пользователь от имени которого он запускается?)

Ситуация следующая: при использовании своего  sendmail.cf выдаётс я ошибка, а при использовании  sendmail.cf, который работал до этого - всё нормально (даже варварским способом).
если поправить в sendmail.mc имя сокета, то с ошибкой будет уже легче
vitaly писал(а):
corvax писал(а):p. s. ну и что за варварские способы перегружать sendmail?
Неварварский способ это /etc/rc.d/sendmail restart или как?
да, именно так, если sendmail из системы
--
/corvax

vitaly
Power member
Сообщения: 35
Зарегистрирован: 16 авг 2005, 18:06

Сообщение vitaly » 23 авг 2005, 17:55

Вроде всё, но есть одно большое НО.

Пересобрал sendmail.cf,  перезапустил sendmail - всё работает.
Но когда добавляю поддержку procmail - то почта отправляется, но не забирается и в $HOME/.procmail/log ничего не пишется.

Что и где исправить (перебрал все варианты, даже переставил procmail.

В дополнение файл sendmail.mc во вложениии.
Вложения

[Расширение mc было запрещено, вложение больше недоступно.]


Ответить

Вернуться в «Серверы - ПО, Unix подобные системы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей