Mail filteren met procmail
Stel, u bent op een aantal interessante mailinglists geabonneerd die dagelijks in totaal zo'n 40 mailtjes opleveren. Dan wilt u die wel graag automatisch direct in de goede postvakken dumpen! Dat kan heel simpel met procmail.
Procmail is meestal al geïnstalleerd. Het zit hoe dan ook bij alle distributies. Kijk anders even op www.procmail.org. Hoe gaan we te werk?
- Zorg ervoor dat sendmail procmail gebruikt om mail af te leveren. Dat kan op twee manieren:
- Via een
.forward
file in uw homedirectory. Die moet dan exact de volgende inhoud bevatten: - Uw MTA (Mail Transfer Agent, vaak Sendmail)
zodanig configureren dat procmail standaard al gebruikt wordt.
Meestal is dit al het geval, en hoeft er geen
.forward
file aan te pas te komen. - Ga de mail die u automatisch wilt insorteren onderzoeken op specifieke kenmerken.
- Open een editor en maak een bestand aan met de naam
.procmailrc
in uw homedirectory. -
:0
betekent: Hier begint een 'recept'. -
H
betekent: scan alleen de Header van de mail. -
:
betekent: Maak een lockfile aan tijdens eventueel insorteren van de mail. Dan kan dan niet conflicteren met een eventueel mailprogramma dat precies op datzelfde moment die mailbox probeert te bewerken. - Sla het bestand op als u klaar bent.
"|/usr/bin/procmail"
inclusief
aanhalingstekens! /usr/bin
moet natuurlijk het pad naar procmail
zijn.
Bijvoorbeeld alle mail van Pietje in de map Piet. Alle mail van Pietje heeft gemeenschappelijk een regel:
From: pietje@ergens.com
enzovoort. Alle mail van bijvoorbeeld een ligfietslist heeft bijvoorbeeld een header-regel:
X-Mailing-List: ligfiets@egroups.com
Bepaal deze unieke kenmerken. (NB in Pine moet u, om de header-regels te kunnen zien in de Setup het commando enable-header-mode inschakelen. Met H kunt u dan de header-regels bekijken. Kan interessant zijn!)
Dit wordt het bestand waarin we de sorteer- en filterregels voor procmail vastleggen. (rc=run control). Stel we willen de mail van pietje@ergens.com in de map Mail/Vrienden/Pietje opslaan. Voer in het bestand in:
MAILDIR=/home/uwnaam/Mail :0 H: * ^From: pietje@ergens\.com$ Vrienden/Pietje
Dit leggen we nu even uit! De variabele MAILDIR is de mail folder waaronder in te sorteren mail moet komen. Let op: niet in te sorteren mail komt dus gewoon in /var/spool/mail/ terecht.
De meeste recepten beginnen dus met :0 H:
.
De volgende regel beginnend met een asterisk (*) is de conditieregel. Dit is
een expressie waarnaar in dit geval in de header gezocht wordt.
^
betekent: Het moet aan het begin van een regel staan.
$
betekent: Hier moet de regel weer eindigen.
Hier wordt een expressie dus alleen gevonden als een regel in de
header exact From: pietje@ergens.com
bevat.
De laatste regel geeft tenslotte de mailbox aan waar de mail aan toe moet worden gevoegd, als aan het selectiecriterium wordt voldaan.
Het volgende voorbeeld gooit alle mail weg (spam filter!) met het woord GUARANTEED in de Subject regel.
:0 H * ^Subject:.*GUARANTEED /dev/null
Gegevens die naar /dev/null
worden geschreven verdwijnen als sneeuw
voor de zon! (Let op: geen lockfile nodig) De zoekexpressie heeft misschien nog wat
uitleg nodig: Subject: moet aan het begin staan, de .*
zorgt ervoor dat er
1 of meer tekens kunnen volgen, vervolgens moet het woord GUARANTEED erin
staan, maar de regel hoeft daar niet mee te eindigen.
Een .procmailrc kan vele recepten bevatten.
Meer informatie
man grep
voor info over regular expressionsman procmailrc
man procmailex
voor voorbeelden.- Procmail FAQ
- LinuxFocus.org: Beheer je email met procmail.
Veel succes!
© 2002 Wilbert Berendsen. Deze tekst is beschikbaar onder de GNU Free Documentation License.Eerste versie: mei 2001
Laatste update: di mei 7 14:56:53 CEST 2002