Messa a punto di fdm

Da Wiki di NetBSD Italia.

(Differenze fra le revisioni)
m (Configurazione: aggiungo 3 righe su fdm.conf)
m (Configurazione: aggiungo l'utilizzo del flag -n e di fetch)
Riga 80: Riga 80:
cosiddette '''azioni''' che sono dei comandi che vengono eseguiti automaticamente
cosiddette '''azioni''' che sono dei comandi che vengono eseguiti automaticamente
quando un filtro corrisponde ad una determinata regola di filtraggio. Quindi ogni
quando un filtro corrisponde ad una determinata regola di filtraggio. Quindi ogni
-
regola è associata ad una azione la quale verràeseguita '''solo''' per quelle
+
regola è associata ad una azione la quale verrà eseguita '''solo''' per quelle
email che rispettano tale regola (eventualmente nessuna). Di norma queste regole
email che rispettano tale regola (eventualmente nessuna). Di norma queste regole
-
sono delle espressioni regolari o, come si vedràin seguito per lo smistamento
+
sono delle espressioni regolari o, come si vedrà in seguito per lo smistamento
della posta ''non filtrata'' sulla MailBox principale, delle semplici parole
della posta ''non filtrata'' sulla MailBox principale, delle semplici parole
chiave.
chiave.
Riga 89: Riga 89:
La posta viene smistata nelle varie MailBox in base a dei criteri di filtraggio
La posta viene smistata nelle varie MailBox in base a dei criteri di filtraggio
ben precisi, applicati secondo l'ordine in cui compaiono nel file di configurazione.
ben precisi, applicati secondo l'ordine in cui compaiono nel file di configurazione.
-
Qualora non si abbia la necessitàdi utilizzare dei filtri (come nel caso della
+
Qualora non si abbia la necessità di utilizzare dei filtri (come nel caso della
MailBox principale) si dovrà comunque utilizzare una '''azione''' a tale scopo.
MailBox principale) si dovrà comunque utilizzare una '''azione''' a tale scopo.
Riga 101: Riga 101:
* '''nome''': corrisponde all'etichetta dell'azione, utilizzata per eseguire successivamente l'azione (tutte le volte che si desidera)
* '''nome''': corrisponde all'etichetta dell'azione, utilizzata per eseguire successivamente l'azione (tutte le volte che si desidera)
-
* '''utente''': il nome o l'ID (UID) dell'utente (o una lista di utenti) che eseguiràl'azione (opzionale)
+
* '''utente''': il nome o l'ID (UID) dell'utente (o una lista di utenti) che eseguirà l'azione (opzionale)
* '''tipo''': il protocollo da utilizzare come pop3, imap, le relative versioni ed il caso speciale '''stdin''' che legge dallo standard input
* '''tipo''': il protocollo da utilizzare come pop3, imap, le relative versioni ed il caso speciale '''stdin''' che legge dallo standard input
Riga 114: Riga 114:
Le cui opzioni sono rappresentano rispettivamente la condizione da soddisfare
Le cui opzioni sono rappresentano rispettivamente la condizione da soddisfare
-
affinchè l'azione corrispondente venga presa in considerazione, gli utenti
+
affinché l'azione corrispondente venga presa in considerazione, gli utenti
-
(come sopra, ma questi hanno prioritàrispetto a quelli specificati nelle
+
(come sopra, ma questi hanno priorità rispetto a quelli specificati nelle
azioni o negli account), l'azione da eseguire (definita in precedenza) ed
azioni o negli account), l'azione da eseguire (definita in precedenza) ed
-
opzionalmente la direttiva continue la quale anzichè terminare il filtraggio
+
opzionalmente la direttiva continue la quale anziché terminare il filtraggio
lascia ''scorrere'' la posta verso le regole successive.
lascia ''scorrere'' la posta verso le regole successive.
Riga 132: Riga 132:
In sintesi, sono state definite 4 azioni che spostano l'email corrente nella
In sintesi, sono state definite 4 azioni che spostano l'email corrente nella
mailbox relativa, specificata come ultimo argomento. In questo modo ogni volta
mailbox relativa, specificata come ultimo argomento. In questo modo ogni volta
-
che verràchiamata una di queste azioni l'email corrente verràautomaticamente
+
che verrà chiamata una di queste azioni l'email corrente verrà automaticamente
smistata nella mailbox ed eventuali altre regole verranno ignorate.
smistata nella mailbox ed eventuali altre regole verranno ignorate.
Riga 148: Riga 148:
Queste regole provvedono a smistare la posta proveniente dalle liste di discussione
Queste regole provvedono a smistare la posta proveniente dalle liste di discussione
''regional-it@'' e ''pkgsrc-wip-*@'' (-discuss e -review) rispettivamente nelle
''regional-it@'' e ''pkgsrc-wip-*@'' (-discuss e -review) rispettivamente nelle
-
mailbox ''~/.mailboxes/ML-regional'' it e ''~/.mailboxes/ML-pkgsrc-wip''. Infine,
+
mailbox ''~/.mailboxes/ML-regional-it'' e ''~/.mailboxes/ML-pkgsrc-wip''. Infine,
l'ultima regola salva tutta la posta rimanente (che non è stata filtrata o che
l'ultima regola salva tutta la posta rimanente (che non è stata filtrata o che
è passata attraverso regole che contengono l'opzione '''continue''') sulla mailbox
è passata attraverso regole che contengono l'opzione '''continue''') sulla mailbox
Riga 154: Riga 154:
In questo modo stiamo informando fdm che l'account con etichetta '''prova'''
In questo modo stiamo informando fdm che l'account con etichetta '''prova'''
-
instaureràuna connessione IMAPs (sicura) sul server '''imap.gmail.com'''
+
instaurerà una connessione IMAPs (sicura) sul server '''imap.gmail.com'''
utilizzando il nome utente '''prova@gmail.com''' abbinato alla password
utilizzando il nome utente '''prova@gmail.com''' abbinato alla password
'''password_di_prova''' ottenendo la posta dai folder elencati all'interno
'''password_di_prova''' ottenendo la posta dai folder elencati all'interno
-
del contrutto '''folder'''. Per molte opzioni è possibile, per ragioni di
+
del costrutto '''folder'''. Per molte opzioni è possibile, per ragioni di
chiarezza, interscambiare il plurale col singolare. In effetti '''folder'''
chiarezza, interscambiare il plurale col singolare. In effetti '''folder'''
e '''folders''' sono analoghi.
e '''folders''' sono analoghi.
 +
 +
=== Verificare la correttezza del file di configurazione e utilizzare fdm ===
 +
Una volta che fdm è configurato risulta molto utile (quasi doveroso)
 +
accertarsi che il file di configurazione sia corretto utilizzando il flag
 +
''-n'' di fdm, ad esempio:
 +
 +
$ fdm -n
 +
/home/leot/.fdm.conf: world readable or writable
 +
/home/leot/.fdm.conf: duplicate action: netbsd-users at line 53
 +
 +
Gli errori sono piuttosto esplicativi, perciò la correzione risulta semplice:
 +
* File di configurazione errato (notare ''netbsd-users'' che viene ripetuto due
 +
volte):
 +
[...]
 +
action "netbsd-tech-x11" mbox "~/Mail/News/netbsd-tech-x11"
 +
action "netbsd-users" mbox "~/Mail/News/netbsd-users"
 +
action "netbsd-users" mbox "~/Mail/News/netbsd-users"
 +
action "netbsd-www-changes" mbox "~/Mail/News/netbsd-www-changes"
 +
[...]
 +
* File di configurazione corretto:
 +
[...]
 +
action "netbsd-tech-x11" mbox "~/Mail/News/netbsd-tech-x11"
 +
action "netbsd-users" mbox "~/Mail/News/netbsd-users"
 +
action "netbsd-www-changes" mbox "~/Mail/News/netbsd-www-changes"
 +
[...]
 +
* Infine assegniamo i giusti permessi al file ~/.fdm.conf:
 +
 +
$ chmod 600 ~/.fdm.conf
 +
 +
E ricontrolliamo se ora la configurazione è corretta:
 +
 +
$ fdm -n
 +
 +
Perfetto!
 +
Ora possiamo iniziare a scaricare le email:
 +
 +
$ fdm fetch
 +
 +
fdm in perfetta filosofia Unix sarà silenziosissimo, per un po' di output si
 +
può utilizzare l'opzione ''-v'':
 +
 +
$ fdm -v fetch
== Conclusioni ==
== Conclusioni ==

Versione delle 22:57, 24 apr 2008

Questo breve testo introdurrà le basi di fdm guidando il lettore attraverso un basilare processo di configurazione. Verranno mostrate le caratteristiche essenziali, giusto per stimolare l'approfondimento del programma.

Indice

Introduzione

Fdm è un programma per il download (fetching) e lo smistamento (delivery) della posta. Fondamentalmente si può considerare un ibrido fra i 2 programmi più famosi e diffusi: fetchmail e procmail. In aggiunta, fdm fornisce qualche funzionalitàaggiuntiva come il supporto pcre (Perl-Extended Regular Expression) che consente dei criteri di filtraggio molto potenti, macro per la configurazione condizionale, integrazione con la shell o molto altro. Supporta sia MailBox MailDir sui principali protocolli come POP3, IMAP e le rispettive versioni sicure POP3s e IMAPs.

Installazione

Attualmente il pacchetto non è ancora stato importato su pkgsrc ma è già completamente funzionante il pacchetto di pkgsrc-wip (incluso il supporto per DESTDIR). Per tanto l'installazione si riduce al consueto utilizzo di pkgsrc, con la sola aggiunta del comando relativo al prelevamente dello stesso dal repository di pkgsrc-wip.

  • Download del pacchetto
$ cd /usr/pkgsrc
$ cvs -d :pserver:anonymous@pkgsrc-wip.cvs.sf.net:/cvsroot/pkgsrc-wip co -P wip/fdm
  • Installazione
$ cd wip/fdm
$ make install clean clean-depends

A questo punto fdm è installato.

Configurazione

Data la vasta gamma di direttive, opzioni e parametri di configurazione vari risulta molto complesso, se non impossibile, soddisfare tutte le esigenze in questa guida. Motivo per cui verrà esposta una semplice configurazione di base valida per la maggior parte degli utenti con esigenze contenute. In altre parole si configurerà fdm in modo tale da effettuare le seguenti operazioni:

  • Scaricare la posta da diversi folder di un server IMAP (molto utile nel caso di account come GMail, che mantengono la posta in folder differenti);
  • Filtrare alcune liste di discussione e smistarle nelle relative mailbox;
  • Reindirizzare tutta la posta non filtrata nella MailBox principale (banale).

Si ricorda inoltre che il file di configurazione principale di fdm è ~/.fdm.conf, se questo file non è presente verrà utilizzato il file di configurazione $PKG_SYSCONFBASE/fdm.conf. Perciò il file più opportuno da utilizzare per le prossime sezioni è ~/.fdm.conf.

Aggiunta di un'account

Gli account di posta possono essere configurati utilizzando la direttiva account la quale contiene tutte le informazioni necessarie all'autenticazione e il download della posta dal server remoto. Tuttavia essa non contiene alcuna informazione relativa al percorso locale sul quale risiederà la posta ottenuta. Questo compito è delegato alle cosiddette azioni (vedi più avanti).

# Account di prova
account "prova" imaps
   server "imap.gmail.com"
   user "prova@gmail.com"
   pass "password_di_prova"
   folders {
      "Inbox"
      "[Gmail]/Spam"
      "[Gmail]/Trash"
      "[Gmail]/Starred"
   }

L'opzione folders è opzionale, qualora questa non fosse specificata il solo folder Inbox sarà utilizzato di default. Una volta aggiunto il primo account basterà seguire lo stesso identico procedimento per tutti gli altri. Non c'è limite per il numero di account.

Azioni

Al fine di comprendere a pieno i passi di configurazione mostrati in seguito, è necessario avere un minimo di familiarità col concetto di azione. Per la consegna (e il filtraggio) della posta viene effettuato mediante le cosiddette azioni che sono dei comandi che vengono eseguiti automaticamente quando un filtro corrisponde ad una determinata regola di filtraggio. Quindi ogni regola è associata ad una azione la quale verrà eseguita solo per quelle email che rispettano tale regola (eventualmente nessuna). Di norma queste regole sono delle espressioni regolari o, come si vedrà in seguito per lo smistamento della posta non filtrata sulla MailBox principale, delle semplici parole chiave.

Destinazioni (MailBox)

La posta viene smistata nelle varie MailBox in base a dei criteri di filtraggio ben precisi, applicati secondo l'ordine in cui compaiono nel file di configurazione. Qualora non si abbia la necessità di utilizzare dei filtri (come nel caso della MailBox principale) si dovrà comunque utilizzare una azione a tale scopo.

Per definire una azione bisogna utilizzare la parola action seguita da una serie di argomenti. La forma generale è questa:

action <nome> [<utente>] <tipo> <parametri>

Gli argomenti hanno i seguenti significati:

  • nome: corrisponde all'etichetta dell'azione, utilizzata per eseguire successivamente l'azione (tutte le volte che si desidera)
  • utente: il nome o l'ID (UID) dell'utente (o una lista di utenti) che eseguirà l'azione (opzionale)
  • tipo: il protocollo da utilizzare come pop3, imap, le relative versioni ed il caso speciale stdin che legge dallo standard input
  • parametri: le opzioni associate all'azione come keep che mantiene la posta sul server, new-only che scarica solo la posta non letta, e così via

Una volta impostata l'azione da eseguire si possono realizzare le regole che la utilizzeranno. A tal proposito fdm mette a disposizione la direttiva match che utilizza la seguente forma:

match <condizione> [<utenti>] <azioni> [continue]

Le cui opzioni sono rappresentano rispettivamente la condizione da soddisfare affinché l'azione corrispondente venga presa in considerazione, gli utenti (come sopra, ma questi hanno priorità rispetto a quelli specificati nelle azioni o negli account), l'azione da eseguire (definita in precedenza) ed opzionalmente la direttiva continue la quale anziché terminare il filtraggio lascia scorrere la posta verso le regole successive.

L'esempio pratico chiariràtutto quello che è stato descritto fin'ora:

# MailBox principale
action "mbox" mbox "/var/mail/nome_utente"

# Liste di discussione
action "regional-it" mbox "~/.mailboxes/ML-regional-it"
action "pkgsrc-wip" mbox "~/.mailboxes/ML-pkgsrc-wip"
action "dwm" mbox "~/.mailboxes/ML-dwm"

In sintesi, sono state definite 4 azioni che spostano l'email corrente nella mailbox relativa, specificata come ultimo argomento. In questo modo ogni volta che verrà chiamata una di queste azioni l'email corrente verrà automaticamente smistata nella mailbox ed eventuali altre regole verranno ignorate.

Regole

Per associare una regola ad un'azione si utilizza la direttiva match la quale dopo avere verificato che l'espressione regolare corrisponda all'email corrente, provvede a chiamare l'azione relativa (che in questo caso si occuperà di smistare l'email nella corretta mailbox di destinazione). Come esempio concreto associamo le azioni di cui sopra a delle regole:

match "^(List-Id|Cc|To):.*pkgsrc-wip-.*\\.lists\\.sourceforge\\.net" in headers action "pkgsrc-wip"
match "^(Delivered-To|Cc|To):.*regional-it@netbsd\\.org" in headers action "regional-it"
match all action "mbox"

Queste regole provvedono a smistare la posta proveniente dalle liste di discussione regional-it@ e pkgsrc-wip-*@ (-discuss e -review) rispettivamente nelle mailbox ~/.mailboxes/ML-regional-it e ~/.mailboxes/ML-pkgsrc-wip. Infine, l'ultima regola salva tutta la posta rimanente (che non è stata filtrata o che è passata attraverso regole che contengono l'opzione continue) sulla mailbox principale (/var/mail/nome_utente).

In questo modo stiamo informando fdm che l'account con etichetta prova instaurerà una connessione IMAPs (sicura) sul server imap.gmail.com utilizzando il nome utente prova@gmail.com abbinato alla password password_di_prova ottenendo la posta dai folder elencati all'interno del costrutto folder. Per molte opzioni è possibile, per ragioni di chiarezza, interscambiare il plurale col singolare. In effetti folder e folders sono analoghi.

Verificare la correttezza del file di configurazione e utilizzare fdm

Una volta che fdm è configurato risulta molto utile (quasi doveroso) accertarsi che il file di configurazione sia corretto utilizzando il flag -n di fdm, ad esempio:

$ fdm -n
/home/leot/.fdm.conf: world readable or writable
/home/leot/.fdm.conf: duplicate action: netbsd-users at line 53

Gli errori sono piuttosto esplicativi, perciò la correzione risulta semplice:

  • File di configurazione errato (notare netbsd-users che viene ripetuto due

volte):

[...]
action "netbsd-tech-x11" mbox "~/Mail/News/netbsd-tech-x11"
action "netbsd-users" mbox "~/Mail/News/netbsd-users"
action "netbsd-users" mbox "~/Mail/News/netbsd-users"
action "netbsd-www-changes" mbox "~/Mail/News/netbsd-www-changes"
[...]
  • File di configurazione corretto:
[...]
action "netbsd-tech-x11" mbox "~/Mail/News/netbsd-tech-x11"
action "netbsd-users" mbox "~/Mail/News/netbsd-users"
action "netbsd-www-changes" mbox "~/Mail/News/netbsd-www-changes"
[...]
  • Infine assegniamo i giusti permessi al file ~/.fdm.conf:
$ chmod 600 ~/.fdm.conf

E ricontrolliamo se ora la configurazione è corretta:

$ fdm -n

Perfetto! Ora possiamo iniziare a scaricare le email:

$ fdm fetch

fdm in perfetta filosofia Unix sarà silenziosissimo, per un po' di output si può utilizzare l'opzione -v:

$ fdm -v fetch

Conclusioni

In questo documento si è cercato di introdurre brevemente verso i basilari passi di configurazione di fdm, lasciando eventuali approfondimenti alla relativa pagina di manuale e/o altre fonti sul web. Tuttavia, quanto mostrato rende chiare le potenzialitàdi questo programma il quale fornisce caratteristiche molto avanzate e rare (se non uniche) fra i software per il fetching della posta. Oltre alle direttive mostrate qui ne esistono molte altre molto complesse. Anche match e action sono molto potenti e consentono di effettuare operazioni particolari anche nidificate. È possibile ad esempio nidificare 2 match come segue:

match all actions {
   rewrite "rev"
  tag "reversed"
} continue

Questo lascia intuire come sia possibile soddisfare qualsiasi tipo di esigenza.

Strumenti personali