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?

  1. Zorg ervoor dat sendmail procmail gebruikt om mail af te leveren. Dat kan op twee manieren:
  2. Ga de mail die u automatisch wilt insorteren onderzoeken op specifieke kenmerken.
  3. 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!)

  4. Open een editor en maak een bestand aan met de naam .procmailrc in uw homedirectory.
  5. 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.

  6. Sla het bestand op als u klaar bent.

Meer informatie

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