PROCMAIL je program, ktorý je nekonečne geniálny, pretože Ti pomôže roztriediť poštu. Je to tvoja sekretárka. Oceníš to najmä vtedy, ak dostávaš maily z konferencií a podobne. Tento program, na základe inštrukcií v RC-file roztrieďuje tvoju poštu do priečinkov (z technického hľadiska sú to samostatné súbory s poštou, ktorú potom čítajú programy ako PINE, MUTT a pod.).
V podstate stačí, ak v súbore ~/.procmailrc
existuje podmienka v takomto tvare
Maska je časť záhlavia mailu, najčastejšie
:0
* <maska>
<mail-folder-súbor>
From, To, Cc, Subject
. Využívajú sa regexpy (regular expressions). Napríklad * ^From.*alain@pes.sk
znamená, že v hlavičke bude na začiatku riadka hľadať slovo From
, za ním bude môcť ľubovoľne veľakrát (aj 0-krát) nasledovať hocijaký znak (.
) a potom bude adresa alain@pes.sk
. Takejto maske vyhovuje napríklad riadok v záhlaví: From: Pes Alain <alain@pes.sk>
.
Praktické príklady využitia. Moja kamarátka má dve emailové adresy Katarina.Halmova@rec.uniba.sk
a halmova@rec.uniba.sk
. Maska: ^From.*almova@rec.uniba.sk
.
Istý človek má e-mailové adresy: vasic@nextra.sk
a vasco@nextra.sk
. Maska: ^From.*vas*@nextra.sk
.
Mail-folder-súbor je súbor, kam sa má uložiť pošta z jej obvyklého miesta, kam sa doručuje (napr. /usr/mail/spool/$USER
). Najčastejšie si e-mailoví klienti odkladajú poštu do adresára ~/mail/
. Takže, ak chcem aby sa maily ukladali do priečinka Haluze, cesta pre e-mail-folder-file bude ~/mail/Haluze
, resp. úplne celá cesta /home/studenti/koudacik/mail/Haluze
.
Začiatok cesty k folder-súboru bude však (pravdepodobne) pre všetky prípady rovnaký. Preto možno do záhlavia súboru .procmailrc
zadať tento riadok
Potom netreba definovať podmienku ako:MAILDIR=$HOME/mail
ale postačí:0
* ^To.*haluze@*
/home/koudacik/studenti/mail/Haluze
:0
* ^To.*haluze@*
Haluze
Procmail umožnuje aj mazať poštu, ktorú nechceš ani vidieť. Stačí ju presmerovať do "koša". Linuxový kôš je device s názvom: /dev/null
.
PATH=/bin:/usr/bin:/usr/sbin:$HOME:$HOME/bin:$HOME/codes
MAILDIR=$HOME/mail #you'd better make sure it exists
DEFAULT=$MAIL #completely optional
LOGFILE=/dev/null #recommended
# mazanie
:0
* ^From.*emt@emt.sk
/dev/null
:0
* ^From.*naj@elt.sk
/dev/null
:0
* ^From.*admin@mailbox.sk
/dev/null
# konferencie
# ak je to konfera typu mailman, staci podmienka To; ak je to len mailalias odporucam aj Cc
:0
* ^To.*vtipy@haluze.sk
Vtipy
:0
* ^Cc.*vtipy@haluze.sk
Vtipy
:0
* ^To.*portal@nikde.sk
Portal
:0
* ^Cc.*portal@nikde.sk
Portal
* ^To.*postmaster*
ADMIN
# je uplne jedno na aku domnu mi to pride, zaradi sa to do toho isteho foldra
:0
* ^To.*forward@postar.sk
ADMIN
# konfery
:0
* ^To.*haluze@*
Haluze
# ak ma konferencia alebo user mail-alias na viacerych domenach
# (alternativne riesenie: kazda domena osobitna podmienka) [vela stastia pri naplnani kvot ;-)]
* ^To.*forum@fornax.sk
Fornax
:0
* ^Cc.*forum@fornax.sk
Fornax
# special odosielatel folders
:0
* ^From.*vas*@nextra.sk
FOTER
:0
* ^From.*euba.sk
EUBA
:0
* ^From.*almova@rec.uniba.sk
KATEY
:0
* ^From.*martinh@woc.sk
Haluze
# takto mozno vybabrat s tymi, co posielaju maily cez bcc