Inserisci Infobox

Fetchmail

Overview e approfondimenti su fetchmail

Introduzione e ambiti di utilizzo di Fetchmail
Autore: maxgrante - ( Revisione: al ) - Ultimo Aggiornamento: 2004-06-02 10:00:42 - Data di creazione: 2004-06-02 10:00:42
Tipo Infobox: DESCRIPTION - Skill: 2- JUNIOR

Fetchmail è il più conosciuto software di mail retrieving per Linux, permette di collegarsi a diversi server di posta (POP3, IMAP4, ESMTP ETRN...) per lo scaricamento della mail da molteplici account e di smistare i messaggi sul server locale.

Un grande vantaggio nell'utilizzo di fetchmail è la garanzia che se il messaggio non viene smistato sul proprio MTA locale non viene perso, infatti al prossimo controllo di posta verrà nuovamente scaricato e fetchmail riproverà a smistarlo sino a quando non ci sarà un esito positivo.

Ci sono due modi per utilizzare fetchmail, da linea di comando passando determinati parametri, oppure utilizzando il file di configurazione ~/.fetchmailrc, che quindi può essere gestito autonomamente da ogni utente del sistema.

AMBITI DI UTILIZZO
Spesso nasce l'esigenza all'interno di un'azienda di dotare tuui i propri dipendenti di posta elettronica per la comunicazione interna e di dover fornire ad altri "privilegiati" anche una mailbox raggiungibile da Internet.
In questi casi si può centralizzare lo scaricamento della posta, configurando i client per scaricare la propria posta esclusivamente da un mail server interno aziendale, dove fetchmail ha provveduto a scaricare la posta dal server di posta pubblico.
Un vantaggio di questo approccio è la possibilità di schedulare lo scaricamento via Internet dalla posta tramite fetchmail e risulta particolarmente utile (anche se in disuso) per società che si connettono ad Internet tramite connessioni dial-up.
Fetchmail inoltre permette di "sfioccare" tutta la mail pervenuta ad un account di posta pubblico (tipicamente un alias per ogni indirizzo di un dominio) in diverse caselle postali locali.
Inoltre, dotare i propri dipendenti di mailbox può causare il fatto che questi ultimi utilizzino la mailbox aziendale anche per scopi privati al di fuori dell'azienda, in tal caso con fetchmail il SysAdmin può attivare svariate mailbox pubbliche senza però fornire la password al dipendente che conoscerà solo quella della propria mail locale, raggiungibile solo dall'interno della rete aziendale.
Il fatto di diventare un punto intermedio fra il client (il comune programma di posta usato dagli utenti) e il server che riceve posta per i proprio domini, lo mette in grado di operare quelle funzioni di filtro (antispam, antivirus, aliasing e filtri custom) che è possibile centralizzare solo quando si ha il controllo del server di posta.

A prescindere dalle motivazioni e le scelte tecniche, Fetchmail di fatto non modifica la logica di configurazione dei client (devono sempre collegarsi ad un server POP3 o IMAP4 per scaricare la posta) e la necessità di avere un server di posta pubblico configurato come MX per i propri domini.
Solitamente Fetchmail si installa sulla stessa macchina in cui viene depositata la posta, per cui su questo sistema deve essere presente un server POP3/IMAP4. Il local delivery può essere fatto tramite un MDA (Sendmail Postfix ecc) o programmi come Procmail.

Modalità di esecuzione di Fetchmail
Autore: maxgrante - Ultimo Aggiornamento: 2004-06-02 10:04:20 - Data di creazione: 2004-06-02 10:04:20
Tipo Infobox: DESCRIPTION - Skill: 2- JUNIOR

Fetchmail può essere attivo sul sistema sia come demone, in cui a livello di file di configurazione si definisce ogni quanto tempo scaricare la posta, che in modalità standalone, demandando ad un lancio manuale o a cron le tempistiche di esecuzione.

La scelta di utilizzare l'una o l'altra soluzione è dipendente dal contesto di utilizzo di Fetchmail. Vediamo di seguito due casi dove in uno è meglio usare il software come demone e nell'altro lanciato da crontab.
SERVER LINUX CHE SI CONNETTE AD INTERNET IN DIAL UP
Anche se ormai in disuso Linux è spesso utilizzato come default gateway per reti LAN che lo utilizzano come dial up server per la condivisione della navigazione e il natting dei client/firewall.
In una situazione del genere è consigliabile eseguire Fetchmail da crontab in quanto è possibile impostare non solo il tempo tra un'esecuzione e l'altra ma anche i giorni in cui deve essere eseguito. Es. dal lunedì al venerdì dalle 08.00 alle 19.00
SERVER LINUX CHE SI CONNETTE AD INTERNET TRAMITE CONNESSIONE ALWAYS ON
In una situazione simile è inutile usare fetchmail da crontab ma conviene eseguirlo come demone all'avvio della macchina e lasciarlo in backgroud nel sistema.

.fetchmailrc
Autore: maxgrante - Ultimo Aggiornamento: 2004-06-02 11:55:52 - Data di creazione: 2004-06-02 11:55:52
Tipo Infobox: PATH - Skill: 3- INTERMEDIATE

Quando viene eseguito fetchmail utilizza di default il file di configurazione .fetchmailrc sito nella home dell'utente. Spesso il file di conf va creato in /root/.fetchmailrc essendo fetchmail eseguito come utente root, anche se questo può comportare complicazioni in termini di sicurezza.

Scaricamento di account POP3
Di seguito analizziamo brevemente la sintassi del file di configurazione per lo scaricamento di posta da un account POP3:
poll mail.openskills.info with proto POP3 user 'max' there with password 'prova' is  maxgrante' here options keep
Analizzando attentamente la sintassi si capisce facilmente che viene settato con poll il server di posta esterno (mail.openskills.info), si specificano utente e password della mailbox remota (max, prova) con il relativo protocollo (POP3) ed infine viene detto a fetchmail a quale mailbox locale inoltrare la mail (maxgrante).
Naturalmente sul nostro server locale deve girare un MTA (sendmail, postfix ecc...) che possa ricevere la mail ed inoltrarla localmente. L'opzione keep dice a fetchmail di non cancellare la copia del messaggio sul server.
Ovviamente si possono aggiungere eventuali altri pop/imap server con i relativi account sulle diverse mailbox remote da far gestire al programma.

Scaricamento di un account multidrop
Uno dei punti di forza di Fetchmail è che può essere utilizzato per dividere la posta destinata ad un singolo account pubblico in diversi account locale.
Un esempio:
poll mail.openskills.info user 'info' there with password 'prova' to pippo pluto 'paperone'='paperino' here
In questo caso viene controllata la casella postale info e la mail viene smistata agli utenti locali pippo, pluto e paperino, considerando che tutta la mail destinata a paperone (sul server remoto) viene redirezionata all'utente paperino locale.