Hi, vor einiger Zeit ging hier mal ein Thread zum Signatur abtrennen. Also bei läuft das jetzt so: in procmail :0 * ^X-Mailinglist.*suse-linux { :0 f | sed -f REs.sed :0 f | sed -f signatur.sed :0 $MAILDIR/SuSEML/. } und in signatur.sed steht: # mehrere Leerzeilen zu einer zusammenfassen /^$/{ N /^\n$/D } /-\{69\}/d /To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com/d /For additional commands, e-mail: suse-linux-help@suse.com/d Damit werden auch gequotete Signaturen (sofern nicht umgebrochen) gelöscht. Wer etwas auf die gleiche Zeile schreibt, hat Pech gehabt. Der erste Eintrag dient zur Verbesserung der Res im Header. REs.sed: # nur im Subject: /Subject:/{ # Aw: durch Re: ersetzten s/[aA][wW]:/Re:/g # RE: durch Re: ersetzten s/RE:/Re:/g #überschüssige Leerzeichen nach Re: löschen s/Re: \{0,\}/Re: /g # Re: Re:... zu Re: kürzen :RES # Sprungmarke s/Re: //2 t RES # Wenn im vorherigen Befehl eine Ersetzung durchgeführt wurde, # dann springe zu Marke RES # (d.h. ich lösche so lange, bis es kein zweites Re: mehr gibt) # testen auf ISO-Kodierung / \?[iI][sS][oO].*\?/{ # wenn vorhanden, dann Re: _ zu Re:_ kürzen s/Re: _/Re:_/g } } Ähnlicher Skripter gibts für: * [lug-dd] aus Subject unserer lokale LUG ML rausschneiden (nervt und man kann das Subject kaum noch lesen) sowie einen SuSE ML änhlichen Footer entfernen * Sponsoring und Footer aus Mails einer durch Deja zugestellen Newsgroup entfernen. Sed macht sich grundsätzlich nicht schlecht, so lange man keine komplexen Kontrollstrukturen benötigt und ist schnell. Ist v.a. schneller zu erlernen als (g)awk (oder perl). Das gesammte Filtering habe ich dabei gleich noch von XFMail auf procmail umgesetzt und nichteingeordnete mail werden gleich noch durch spambouncer (http://www.hrweb.org/spambouncer/) gejagt. Mein .procmailrc ist damit zwar inzwischen hinreichend komplex, aber es klappt und Spam wird in den richtigen Folder einsortiert (und wenn ich alles was falsch einsortiert habe in Zunkunft einfach gebounced) und unliebsame(s) Footer/Sponsoring/schlechte Re's werden korrigiert. Wenn jemand auf noch andere Gedanken kommt, dies ist sicher ausbaufähig! cu, Carsten -- Registered Linux User: #65883 (http://counter.li.org) --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Carsten Schurig schrieb in 2,5K (100 Zeilen):
vor einiger Zeit ging hier mal ein Thread zum Signatur abtrennen. Also bei läuft das jetzt so:
und in signatur.sed steht:
# mehrere Leerzeilen zu einer zusammenfassen
Nett, nur manchmal setzen Leute bewusst mehrere Leerzeilen als Trenner ein.
Der erste Eintrag dient zur Verbesserung der Res im Header. REs.sed:
# nur im Subject: /Subject:/{
# Aw: durch Re: ersetzten s/[aA][wW]:/Re:/g
Subject: Re: Bitte KEIN "AW:" verwenden. --> Re: Bitte KEIN "Re:" verwenden. Subject: Was heisst "Cannot draw: No such file or directory"? --> Was heisst "Cannot drRe: No such file or directory"? Subject: Copyright law: What does the GPL mean? --> Copyright lRe: What does the GPL mean? Subject: tiger write_raw: fill full --> tiger write_rRe: fill full (./drivers/isdn/hisax/netjet.c) Subject: smb_send_raw: sendto error --> smb_send_rRe: sendto error (./fs/smbfs/sock.c) 'Fish in a barrel ... with a shotgun'.
# RE: durch Re: ersetzten s/RE:/Re:/g
Subject: buz ioctl VIDIOCCAPTURE: 12345 --> buz ioctl VIDIOCCAPTURe: 12345 (./drivers/char/buz.c)
#überschüssige Leerzeichen nach Re: löschen s/Re: \{0,\}/Re: /g
Und Tabs? etc. -Wolfgang --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
participants (2)
-
Carsten.Schurig@gmx.net
-
weissel@netcologne.de