Procmail: Skillnad mellan sidversioner
Poj (diskussion | bidrag) mIngen redigeringssammanfattning |
Bellman (diskussion | bidrag) |
||
Rad 13: | Rad 13: | ||
==Procmail på Lysator== |
==Procmail på Lysator== |
||
Procmail är installerat som /usr/bin/procmail |
Procmail är installerat som /usr/bin/procmail på mailservern, och som /usr/local/bin/procmail på mailexec-datorn. |
||
===Att sätta upp procmail på sitt konto=== |
===Att sätta upp procmail på sitt konto=== |
Versionen från 10 juli 2007 kl. 16.08
Denna text riktar sig till de som bävar varje gång de skall kolla sin inkomna e-post, de som ogillar oredan bland alla inkomna brev. Ångrar du att du gick med i ytterligare e-post-listor? Svär du över alla spams om allt från hårborttagningsmedel till snabba pengar? Då kan det vara en idé att automatiskt sortera inkommande brev med hjälp av programmet procmail.
Denna handledning förutsätter grundläggande kunskaper i UNIX.
Procmail
Procmail är en kraftfull samling verktyg för automatisk mailhantering, utvecklad av Stephen R. van den Berg. Procmail kan hantera mail när de anländer eller redan anlända mail i din mailbox. För att styra procmail finns en kraftfull uppsättning filter för att filtrera på önskat sätt. För varje filter anges vad procmail skall göra om ett matchande brev anländer, det vanligaste är att man flyttar brevet till en mailbox för just det filtret.
Till procmail finns färdiga paket för spam-filtrering, exempelvis The Spam Bouncer.
Procmail på Lysator
Procmail är installerat som /usr/bin/procmail på mailservern, och som /usr/local/bin/procmail på mailexec-datorn.
Att sätta upp procmail på sitt konto
För att procmail skall fungera måste det finnas en inställningsfill '.procmailrc' och ett directory '.procmail' innehållande filter. Procmail kommer också att placera loggar över hanteringen i detta directory. För att automaiskt köra procmail vid inkommande post måste man ändra sin '.forward'. Exempel på detta finns nedan.
De exempel som finns i denna text gör så att inkommande mail placeras i det directory som är mail-directory för mailklienten Pine, '~/mail'. Directoryt innehåller en mailfil för varje mailbox. Eventuellt vill man lägga inkommande mail i ett eget directory, exempelvis om man vill använda Pines funktion för flera inboxar.
Att skapa en '.procmailrc'
Det första steget är att skapa inställningsfilen '.procmailrc' i rooten på ditt Lysator-konto. Följande exempel kan med fördel användas.
#Set on when debugging VERBOSE=off #Replace `mail' with your mail directory (Pine uses mail, Elm uses Mail) MAILDIR=$HOME/mail #Directory for storing procmail log and rc files PMDIR=$HOME/.procmail LOGFILE=$PMDIR/log INCLUDERC=$PMDIR/rc.testing INCLUDERC=$PMDIR/rc.maillists
För att procmail skall våga använda filen får den inte vara skrivbar för någon annan än dig själv (t ex mode 644).
Skapa en filterfil
För att procmail skall veta vad du vill göra med dina mail behöver den filterfiler. I slutet av ovanstående '.procmailrc' inkluderas två filer 'rc.testing' och 'rc.maillists'. Den första av dessa filer skall vi skapa för att testa procmail och den andra för att hantera maillistor.
Skapa först directoryt '.procmail', vilket skall innehålla filterfilerna. I detta directory skapar du filen 'rc.testing', med följande innehåll:
:0: * ^Subject:.*test in.test
Detta filter kommer flytta alla inkommande brev där brevets "Subject" innehåller ordet "test" till inboxen "in.test". Filtrets utformning och innehåll förklaras i avdelningen om maillistor nedan.
Skapa '.forward'
För att procmail skall köras vid inkommande post anger man detta i filen '.forward'. Denna fil körs alltid vid inkommande post, namnet kommer av att filen oftast används för att vidarebefodra post till andra maskiner. Skapa nu filen '.forward' i rooten på ditt Lysator-konto och se till att den innehåller följande sträng, inklusive citationstecknen i början och slutet.
- "|exec /usr/local/bin/procmail"
För att din '.forward' ska fungera får den inte vara skrivbar för någon annan än dig själv (t ex mode 644).
Om du använder din '.forward' för att vidarebefodra post och vill fortsätta med detta ser du till att din forward-instruktion ligger på en egen rad i filen.
En första test av procmail
Det nu dags att testa procmail och ditt test-filter. Skicka därför ett brev till dig själv där subject-raden innehåller ordet "test". Om procmail fungerar skall detta brev hamna i mailfilen '~/mail/in.test'. Kolla med Pine så att foldern "in.test" finns och innehåller ditt brev. Du bör också testa att skicka ett brev utan ordet "test" i subject-raden, för att se så procmail inte filtrerar dessa. Om procmail inte fungerar som väntat bör du läsa igenom ovanstående steg igen.
När du med ovanstående test klargjort att procmail fungerar kan du kommentera bort den rad i din '.procmailrc' som inkluderar test-filtret. Kommentering sker genom att placera tecknet "#" i början av raden.
Hantering av maillistor
Det är nu dags att börja använda procmail till något användbart, att hantera inkommande brev från maillistor. Skapa filen '~/.procmail/rc.maillists' med följande innehåll:
:0: * ^TOcuckoo-list in.cuckoo-list
:0: * ^Subject:.*freshmeat in.freshmeat
Detta exempel innehåller två filter, ett som hanterar brev från maillistan "cuckoo-list" och ett som hanterar nyhetsbrev från http://freshmeat.net/. Det första filtret kollar på brevets adress-rad och det andra på brevets subject-rad.
Filtrens syntax:
:0 Börja nytt filter : Använd lock-file * Börja matchning ^TO Matcha "To:", "Cc:" och andra synonymer för adressater i början av en rad, följt av namn på adressat cuckoo-list Matcha adressater innehållande "cuckoo-list" in.cuckoo-list Om brevet matchar, placera det i mailfoldern $MAILDIR/in.cuckoo-list
Normalt sett sker matchningen med hjälp av vanliga reg-expar. I ovanstående exempel används dock en specialfunktion, "^TO", vilken matchar på "To:", "Cc:" och andra synonymer för adressat.
Mer information om hur man skriver filter fås genom att köra 'man procmailrc'. Ett stort antal exempel på filter fås genom att köra 'man procmailex'.
Filtrering av spam
För att filtrera oönskade brev finns det färdiga paket med mycket kraftfulla filter. Jag rekomenderar paketet The Spam Bouncer, vilket undersöker inkommande brev på många olika sätt. Paketet kan styras så att spams placeras i tre olika inboxar, en för definitiva spams, en för troliga spams och en för brev skickade med bulkmailers (program för massutskick av mail). Den som är riktigt trött på spam kan ange '/dev/null' som destination.
The Spam Bouncer har också funktioner för att automatiskt skicka ett klagobrev till avsändaren av spamet.
En bra instruktion för The Spam Bouncer finns på paketets hemsida.
Bra att veta är att Lysators mailserver använder MAPS RBL, DUL och RSS för att försöka undvika SPAM i viss mån. Detta innebär att mail från vissa ipadresser helt enkelt stoppas i dörren. Om du inte vill att detta sker för just din mail ställs detta in genom att logga in på Mailconf.
Procmail och Pine
E-post-klienten Pine har funktioner för att hantera flera inboxar, vilket är trevligt tillsammans med procmail. Denna funktion är från början avslagen, och sätts på genom att man i Pines inställningar markerar flaggan "enable-incoming-folders". Detta ändrar Pines "Folder List", vilken nu är uppdelad i en avdelning för inboxar och en för vanliga boxar. När man läser mail i sina inboxar kan man gå till nästa inbox genom att trycka [TAB]. Det kan vara trevligt att markera inställningen "auto-open-next-unread" för att kunna gå direkt till nästa folder utan att behöva svara "ja" varje gång.
När man använder flera inboxar i Pine är det bra att placera inboxar i ett eget directory, så att de inte dyker upp bland icke inboxar. Skapa exempelvis katalogen 'in.mail', vilken sätts som destination för procmails filter.
För att Pine skall känna till dina nya inboxar måste du addera dessa genom att trycka "A" när du står i den del av Pines "Folder List" som har rubriken "Incoming Message Folders". På den första frågan trycker du bara return, vilket anger att du har infoldern på Lysator och inte på annan server. På nästa fråga svarar du med sökvägen till den inbox-fil du vill adera, exempelvis '~/in.mail/in.test'. På sista frågan anger du vad inboxen skall heta i Pine.
Mailindikatorer för flera inboxar
Vanliga mailindikatorer som "xbiff", "coolmail" och "asmail" har inte stöd för flera inboxar. Mail som flyttas från inboxen av procmail indikeras inte. För att övervaka flera inboxar bör man därför använda program avsedda för detta, exempelvis "xmultibiff" (finns på Lysators system) och "xbuffy".
Länkar om procmail
Nedan finns ett antal länkar till mer information om procmail.
- http://www.procmail.org
- Jari Aalto's procmail tips
- Procmail FTP Directory
- Infinite Ink's Processing Mail with Procmail
- Filtering Mail FAQ
Lycka till! /pugo@lysator