Email Retrieval · 4 min read · Jan 01, 2026

Recupero Email Da Server Remoti Con getmail (Debian Etch)

Recupero Email Da Server Remoti Con getmail (Debian Etch)

Versione 1.1
Autore: Falko Timme

Getmail è un programma per recuperare email da server remoti; è molto simile a fetchmail, ma più flessibile. Ad esempio, può essere configurato per consegnare le email direttamente a una casella di posta Maildir o mbox senza la necessità di un MTA come Postfix, ma ovviamente può anche instradare le email attraverso un MTA se lo desideri. Getmail può utilizzare filtri chiamati come SpamAssassin e ClamAV per scansionare le email, e puoi anche dire a getmail di eliminare le email sul server originale solo dopo un certo numero di giorni.

Non rilascio alcuna garanzia che questo funzionerà per te!

1 Nota Preliminare

Ho testato getmail su un sistema Debian Etch con un utente locale chiamato falko che ha l’indirizzo email locale [email protected].

2 Installa getmail

Per installare getmail, tutto ciò che dobbiamo fare è eseguire

apt-get install getmail4

come root.

3 Configura getmail

Getmail può essere configurato tramite file di configurazione per singolo utente, e getmail può quindi essere eseguito da quell’utente. Per far funzionare getmail automaticamente, possiamo creare un lavoro cron per quell’utente.

In questo capitolo presumo che tu sia loggato come utente falko, non come root!

Getmail cerca il file di configurazione ~/.getmail/getmailrc, quindi prima dobbiamo creare la directory ~/.getmail con permessi di 0700:

mkdir -m 0700 ~/.getmail

Poi creiamo il file di configurazione ~/.getmail/getmailrc. Un file getmailrc deve avere almeno una sezione [retriever] e una sezione [destination].

vi ~/.getmail/getmailrc

| [retriever] type = SimplePOP3Retriever server = pop.someprovider.tld username = [email protected] password = secret [destination] type = Maildir path = ~/Maildir/ |

L’esempio sopra presuppone che falko abbia un’email con il nome utente [email protected] e la password secret sul server pop.someprovider.tld, e che abbia un account Maildir su questo server, con ~/Maildir/ che è la sua directory Maildir.

Questo è già sufficiente per configurare getmail. falko potrebbe ora recuperare email dal server remoto semplicemente eseguendo

getmail

Naturalmente, falko non vuole avviare il recupero manualmente ogni pochi minuti, quindi creiamo un lavoro cron per lui. Sempre come utente falko, eseguiamo

crontab -e

e creiamo un lavoro cron come questo (che avvierebbe getmail ogni cinque minuti):

| */5 * * * * /usr/bin/getmail &> /dev/null |

Ora supponiamo che falko non abbia un account Maildir, ma un account mbox su questo server (/var/mail/falko). Tutto ciò che dobbiamo fare è modificare la sezione [destination] in ~/.getmail/getmailrc, ad esempio in questo modo:

vi ~/.getmail/getmailrc

| [retriever] type = SimplePOP3Retriever server = pop.someprovider.tld username = [email protected] password = secret [destination] type = Mboxrd path = /var/mail/falko |

Nell’esempio successivo vogliamo instradare le email che recuperiamo dal server remoto attraverso un MTA come Postfix (presumo che Postfix sia già installato e funzionante). Postfix può quindi occuparsi di consegnare le email a Maildir o mbox, e può anche invocare scanner di spam e virus, ad esempio tramite amavisd-new.

vi ~/.getmail/getmailrc

| [retriever] type = SimplePOP3Retriever server = pop.someprovider.tld username = [email protected] password = secret [destination] type = MDA_external path = /usr/sbin/sendmail arguments = ("-i", "-bm", "[email protected]") unixfrom = true |

(Come vedi, diciamo a getmail che l’indirizzo email locale di falko è [email protected].)

L’opzione -i nella riga degli argomenti è importante (grazie a Chris Moules per il suggerimento):

*Il problema è che alcune email, quando vengono consegnate a sendmail, verranno troncate. Questo può accadere quando il corpo del messaggio estratto dalla sorgente contiene una riga con un singolo punto (.). In SMTP questo viene utilizzato per indicare la fine del messaggio. Quando si invoca sendmail dalla riga di comando, il comportamento predefinito è di terminare il messaggio su EOF o su un singolo punto.

Citazione dalla pagina man di Postfix sendmail:

Per impostazione predefinita, Postfix sendmail(1) legge un messaggio dall’input standard fino a EOF o fino a quando legge una riga con solo un carattere ..

Citazione dalla pagina man di sendmail:

Senza flag, sendmail legge il suo input standard fino a un fine file o a una riga che consiste solo di un singolo punto e invia una copia del messaggio trovato lì a tutti gli indirizzi elencati.

Avevo ricevuto segnalazioni da clienti che a volte, la loro email era ‘corrotta’, ‘mancante’ o ‘troncata’. Dopo aver esaminato i messaggi sul nostro server e ciò che c’era nel loro sistema di posta, era chiaro che c’era un problema.

Una piccola ricerca ha mostrato che il sendmail locale doveva essere invocato con l’opzione ‘-i’:

Citazione dalla pagina man di Postfix sendmail:

-i Quando si legge un messaggio dall’input standard, non trattare una riga con solo un carattere . come la fine dell’input.

Questo fa sì che sendmail attenda fino alla fine del file fino a quando il messaggio non viene inviato.*

Puoi testare l’opzione -i con un’email come la seguente:

---
Quattro:
....
Tre:
...
Due:
..
Uno:
.
---

3.1 Opzioni

Possiamo anche aggiungere una sezione [options] a ~/.getmail/getmailrc dove possiamo cambiare il comportamento predefinito di getmail, ad esempio in questo modo:

vi ~/.getmail/getmailrc

| [...] [options] verbose = 1 read_all = false delete = true message_log_syslog = true |

Le opzioni sopra dicono a getmail di stampare messaggi riguardo ai messaggi recuperati, di recuperare solo nuovi messaggi, di eliminare i messaggi dal server remoto dopo il recupero e di registrare nel syslog.

Se desideri eliminare solo le email più vecchie di dieci giorni, puoi modificare la sezione [options] come segue:

vi ~/.getmail/getmailrc

| [...] [options] verbose = 1 read_all = false delete_after = 10 message_log_syslog = true |

Puoi saperne di più su tutte le opzioni disponibili su http://pyropus.ca/software/getmail/configuration.html#conf-options.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.