Приветствую всех!
Помогите решить проблемку (может кто сталкивался?)
Суть проблемы:
Стоит почтовый сервер Postfix 2.1 + mysql + много всего,)
На сервере много виртуальных доменов
На сервере есть фильтры в том числе header_checks
Приходит много почты
так вот почта которая неудовлетворяет правилам получает отлуп и пытается отправится обратно с ошибкой после maximal_queue_lifetime
но так как это в основном спам и эти почтовые сервера уже не существуютто висит это письмо в очереди сутками например:
9E2F198C9B 6049 Fri Jun 4 09:49:45 MAILER-DAEMON
(connect to neptune.silverserve.com[62.189.250.22]: Connection timed out) FAFFCNCQEJY@macmail.com
За день накапливается прилично,(Mожно ли как нибудь средствами postfix удалять почту из очереди если время жизни сообщения привысило заданный срок?
сейчас по крону скриптом выношу
mailq | awk '{print $1" "$7}' |grep "MAILER-DAEMON"| awk '{print "/var/spool/postfix/deferred -type f -name \""$1"\" -exec rm {} \\;"}' |
xargs -l1 find
но это не есть гуд
И ещё вопрос как в связке с mysql заставить постфикс не принимать почту на несуществующих пользователей на этапе соеденения???
без mysql - работает
с базой - нет(
http://www.opennet.me/base/net/postfix_tls.txt.htmlтам было
>http://www.opennet.me/base/net/postfix_tls.txt.html
>
>там было
Посмотрел...
там нет того про что я спрашивал,(
ну и пусть себе висит, через четверо суток или сколько у тебя maximal_queue_lifetime там стоит , автоматом убьется ! или у тебя напряг с местом на диске ?
>ну и пусть себе висит, через четверо суток или сколько у тебя
>maximal_queue_lifetime там стоит , автоматом убьется ! или у тебя
>напряг с местом на диске ?
место есть,) почта медленно начинает обрабатываться
в том и прикол что не убивается
после maximal_queue_lifetime оно отправляеться обратно отправителю с ошибкой а отправителя нет ну и оно снова начинает висеть в очереди ,((
>up up:)pu pu :)
попоробуй тут посмотреть
http://palm.opennet.ru/base/net/postfix_restrict.txt.html
и тут
http://nix.sevsky.net/rtfm/postfix/RESTRICTION_CLASS_README....
man postsuper
postsuper -dу меня это удаляется скриптом
примерный кусочек
---------------------------
/usr/bin/mailq | /usr/bin/grep -n "" > /etc/postfix/spam/mailq.txt
/usr/bin/grep 'Host not found' /etc/postfix/spam/mailq.txt | /usr/bin/awk -F: '{print$1}' > /etc/postfix/spam/mailq_id.txt
/usr/bin/grep 'No route to host' /etc/postfix/spam/mailq.txt | /usr/bin/awk -F: '{print$1}' >> /etc/postfix/spam/mailq_id.txt
/usr/bin/grep 'Operation timed out' /etc/postfix/spam/mailq.txt | /usr/bin/awk -F: '{print$1}' >> /etc/postfix/spam/mailq_id.txt
/usr/bin/grep 'server dropped' /etc/postfix/spam/mailq.txt | /usr/bin/awk -F: '{print$1}' >> /etc/postfix/spam/mailq_id.txt
/usr/bin/grep 'Connection refused' /etc/postfix/spam/mailq.txt | /usr/bin/awk -F: '{print$1}' >> /etc/postfix/spam/mailq_id.txt
/usr/bin/grep '450' /etc/postfix/spam/mailq.txt | /usr/bin/awk -F: '{print$1}' >> /etc/postfix/spam/mailq_id.txt
while read LINE
do
ID=`expr $LINE - 1`
echo $ID
GG=`/usr/bin/grep "^$ID" /etc/postfix/spam/mailq.txt | /usr/bin/awk '{print$1}' | /usr/bin/awk -F: '{print$2}'`
echo $GG
/usr/sbin/postsuper -d $GG
done < /etc/postfix/spam/mailq_id.txt----------------------------
ну в принципе идея ясна.
отлавливаеш сообщение о повисших письмах
и убиваещ их.
Спасибо,)
А насчёт проверки существования пользователя на этапе соеденения?
если postfix c mysql?
у когонибудь это работает?,))local_recipient_maps = $virtual_user $virtual_maps $transport_maps
>Приветствую всех!
>Помогите решить проблемку (может кто сталкивался?)
>Суть проблемы:
>Стоит почтовый сервер Postfix 2.1 + mysql + много всего,)
>На сервере много виртуальных доменов
>На сервере есть фильтры в том числе header_checks
>Приходит много почты
>так вот почта которая неудовлетворяет правилам получает отлуп и пытается отправится обратно
>с ошибкой после maximal_queue_lifetime
>но так как это в основном спам и эти почтовые сервера уже
>не существуют
>
>то висит это письмо в очереди сутками например:
>
>9E2F198C9B 6049 Fri Jun 4 09:49:45
>MAILER-DAEMON
> (connect to neptune.silverserve.com[62.189.250.22]: Connection timed out) FAFFCNCQEJY@macmail.com
>
>За день накапливается прилично,(
>
>Mожно ли как нибудь средствами postfix удалять почту из очереди если время
> жизни сообщения привысило заданный срок?
>
>сейчас по крону скриптом выношу
>mailq | awk '{print $1" "$7}' |grep "MAILER-DAEMON"| awk '{print "/var/spool/postfix/deferred
>-type f -name \""$1"\" -exec rm {} \\;"}' |
> xargs -l1 find
>но это не есть гуд
>И ещё вопрос как в связке с mysql заставить постфикс не принимать
>почту на несуществующих пользователей на этапе соеденения???
>без mysql - работает
>с базой - нет(http://www.opennet.me/tips/info/545.shtml
mailq|grep 'MAILER-DAEMON'|awk '{print $1}'|xargs -J{} -n1 postsuper -d {} deferredНо лучше в main.cf прописать:
bounce_queue_lifetime = 0
что значит посылать bounce письмо только один раз, если не прошло в очередь не помещать.