Sziasztok,
Postfixben elég jó hatékonysággal használjuk a restrictions-okat. Persze vannak vele problémák... Szeretnénk azt megcsinálni, hogy minden emailcímnek a napi visszautasított leveleit kiszedjük a logból. Tehát pl:
x.y@domain.hu címre 2 db bejövő levél lett visszautasítva:
vigra@domain.com
sex@domain.biz
Végülis ilyen pflogsumm szerű dolgot...
Ehhez tudtok programot?
Mik
- 1265 megtekintés
Hozzászólások
- A hozzászóláshoz be kell jelentkezni
Szia Józsi!
Látom kijött végre a 2.x :) Vártuk már :) Elkerülte a figyelmem, hogy lett volna hír róla itt HUP-on... Meg fogjuk nézni, de azért ez egy nagyobb falat :) Majd Networkshop-on értekezünk róla, ha jössz :)
Mik
- A hozzászóláshoz be kell jelentkezni
Ott leszek. Lesz egy előadás az itteni E-mail rendszer felépítéséről,
aminek a postfilter természetesen része.
HUP/freshmeat/postfix-users hír még nem volt, lassan ideje lesz
annak is.
Üdv,
Józsi
- A hozzászóláshoz be kell jelentkezni
Végülis megszületett:
#!/bin/bash
if [ $# -ne 1 ]
then
echo usage: $0 FILE
exit 1
fi
for i in `grep -o 'to=<[^>]*domain.hu>' $1 |sort |uniq`
do
email=`echo $i|grep -o '<[^>]*>'|sed -e 's/<//g' -e 's/>//g'`
if [ `ldapsearch -x -h ldapserver.hu -LLL -b ou=phonebook,ou=People,o=hely,o=ceg,c=HU mail="$email" mail|grep -c mail` -ge 1 ]
then
echo "`echo $i|sed -e 's/^to=<//g' -e 's/>//g'` visszautasitott levelei `date --date='1 day ago' +%F` 6:30-tol `date +%F` 6:30-ig" >/tmp/mail.txt
grep "$i" $1|grep -o 'from=<[^>]*>' |sort |uniq -c >>/tmp/mail.txt
mail -s "visszautasitott levelek `date +%F`" `echo $i|sed -e 's/^to=<//g' -e 's/>//g'` </tmp/mail.txt
fi
done
rm /tmp/mail.txt
#done
#EOF - logzabalo.sh
Kis magyarázat:
van egy /var/log/mail-reject.log file, amibe syslog-ng segítségével gyûlnek az 55x-es hibával visszautsított üzenetek. A fenti kis script ebbõl szedi ki és összesíti a to= sorok közül azokat, amely címek az ldap serverben bennevannak, és a usernek elküldi mailben, hogy milyen leveleket nem kapott meg. Értehtõ? :)
Egy probléma van vele, hogy nem épp teljesítményorientált... Ehhez kérnék ötleteket, hogy hogyan lehetne a performaciát javítani? Pl. perl-el biztos 100x hatékonyabban meg lehetne csinálni, csak ahhoz nem értek... Meg más programnyelvekhez sem... Szóval ha valakinek van kedves segíteni, azt megköszönném!
Mik
- A hozzászóláshoz be kell jelentkezni
Senki?
- A hozzászóláshoz be kell jelentkezni