Testare la consegna della posta

Fino ad adesso abbiamo speso parecchio tempo con teorie e configurazioni. Volete sapere se tutto ciò che abbiamo fatto porta ad un server di posta funzionante? Prima di affrontare le ultime fasi facciamo una pausa e verifichiamo se tutto funziona come previsto.

A questo punto la cartella /var/vmail dovrebbe essere vuote o forse contine una cartella “example.org” se avete fatto delle prove con l’account john@example.org. Potete avere una lista di tutti i file e le cartelle dentro lanciando:

find /var/vmail

Anche se non ci sono ancora mail sul server, potreste ottenere qualcosa tipo:

/var/vmail/
/var/vmail/lost+found
/var/vmail/example.org
/var/vmail/example.org/john
/var/vmail/example.org/john/Maildir
/var/vmail/example.org/john/Maildir/new
/var/vmail/example.org/john/Maildir/subscriptions
/var/vmail/example.org/john/Maildir/dovecot-uidvalidity
/var/vmail/example.org/john/Maildir/tmp
/var/vmail/example.org/john/Maildir/dovecot-uidvalidity.5a537e85
/var/vmail/example.org/john/Maildir/dovecot.mailbox.log
/var/vmail/example.org/john/Maildir/dovecot-uidlist
/var/vmail/example.org/john/Maildir/dovecot.index.log
/var/vmail/example.org/john/Maildir/cur
/var/vmail/example.org/john/Maildir/.INBOX.Trash
/var/vmail/example.org/john/Maildir/.INBOX.Trash/new
/var/vmail/example.org/john/Maildir/.INBOX.Trash/maildirfolder
/var/vmail/example.org/john/Maildir/.INBOX.Trash/tmp
/var/vmail/example.org/john/Maildir/.INBOX.Trash/dovecot-uidlist
/var/vmail/example.org/john/Maildir/.INBOX.Trash/dovecot.index.log
/var/vmail/example.org/john/Maildir/.INBOX.Trash/cur
/var/vmail/example.org/john/Maildir/.INBOX.Junk
/var/vmail/example.org/john/Maildir/.INBOX.Junk/new
/var/vmail/example.org/john/Maildir/.INBOX.Junk/maildirfolder
/var/vmail/example.org/john/Maildir/.INBOX.Junk/tmp
/var/vmail/example.org/john/Maildir/.INBOX.Junk/dovecot-uidlist
/var/vmail/example.org/john/Maildir/.INBOX.Junk/dovecot.index.log
/var/vmail/example.org/john/Maildir/.INBOX.Junk/cur

In pratica lo schema che vedete è /var/vmail/DOMINIO/UTENTE/Maildir/…

Ogni cartella IMAP ha tre sottocartelle:

  • new – ogni file qui è un’email salvata ma non ancora letta
  • cur – uguale ma per email già lette
  • tmp – per azioni temporanee del server di posta

In base alla nostra configurazione di Dovecot le cartelle mail sono nidificate così:

  • …/Maildir/new/… – l’inbox principale
  • …/Maildir/.INBOX.reddit/new/… – la cartella mail “reddit” sotto l’inbox
  • …/Maildir/.INBOX.servers.inga/new/… – la cartella “servers”/”inga” sotto l’inbox

Se non usate il vecchio schema con “separator = .” le vostre cartelle saranno così:

  • …/Maildir/new/… – l’inbox principale
  • …/Maildir/INBOX/reddit/new/… – la cartella mail “reddit” sotto l’inbox
  • …/Maildir/INBOX/servers/inga/new/… – la cartella “servers”/”inga” sotto l’inbox

Mandare una mail di prova

E’ tempo di mandare una nuova mail al sistema. Apriamo un nuovo terminale e lanciamo

tail -f /var/log/mail.log

per vedere cosa sta facendo il server di posta. Ora mandiamo una mail a John. Un modo semplice di creare e mandare una mail è di passare del testo al comando “mail” tramite pipe. Facciamolo in un altro terminale:

date | sendmail john@example.org

Se tutto funziona come previsto il nostro mail.log mostrerà un mucchio di informazioni tecniche della consegna della mail. Come questo:

Jan 9 09:10:47 jen postfix/pickup[2370]: 30B4B41A98: uid=0 from=
Jan 9 09:10:47 jen postfix/cleanup[2633]:
30B4B41A98: message-id=<20180109081047.30B4B41A98@mail.example.org>
Jan 9 09:10:47 jen postfix/qmgr[30330]:
30B4B41A98: from=<root@mail.example.org>, size=287, nrcpt=1 (queue active)
Jan 9 09:10:47 jen dovecot: lmtp(2636): Connect from local
Jan 9 09:10:47 jen dovecot: lmtp(john@example.org):
iHHHEwd5VFpMCgAA3BOsLQ: msgid=<20180109081047.30B4B41A98@mail.example.org>:
saved mail to INBOX
Jan 9 09:10:47 jen dovecot: lmtp(2636): Disconnect from local: Successful quit
Jan 9 09:10:47 jen postfix/lmtp[2635]:
30B4B41A98: to=<john@example.org>, relay=mail.example.org[private/dovecot-lmtp],
delay=0.28, delays=0.06/0.03/0.08/0.11, dsn=2.0.0, status=sent
(250 2.0.0 <john@example.org> iHHHEwd5VFpMCgAA3BOsLQ Saved)

Il vostro output sarà leggermente diverso. Focalizzatevi sulle parti in grassetto. Dovrebbero essere esattamente le stesse nel vostro file di log. Se tutto ha funzionato come previsto Postfix ha accettato la mail e l’ha inoltrata a Dovecot che a sua volta ha salvato la mail nella maildir di John. Se ottenete qualche errore nel file di log, cercate di capire il messaggio di errore e di trovare la causa del problema prima di procedere.

Controlliamo ancora:

find /var/vmail

Dovecot ha creato una struttura di cartelle per John e un nuovo file:

/var/vmail/
[…]
/var/vmail/example.org/john/Maildir/new/1515485447.M404984P2636.mail,S=510,W=522
[…]

Il file avrà un nome diverso nel vostro sistema – è normale. Il nome in grassetto rappresenta il file della mail. E’ l’unico file nella cartella “new”.

Accedere alla mail come file sul disco

Il file contiene la mail:

Return-Path: <root@mail.example.org>
Delivered-To: john@example.org
Received: from mail.example.org
by mail.example.org (Dovecot) with LMTP id iHHHEwd5VFpMCgAA3BOsLQ
for <john@example.org>; Tue, 09 Jan 2018 09:10:47 +0100
Received: bymail.example.org (Postfix, from userid 0)
id 30B4B41A98; Tue, 9 Jan 2018 09:10:47 +0100 (CET)
Message-Id: <20180109081047.30B4B41A98@mail.example.org>
Date: Tue, 9 Jan 2018 09:10:47 +0100 (CET)
From: root@mail.example.org (root)

Di 9. Jan 09:10:47 CET 2018

Se qualcosa è andato storto controllate attentamente le ultime linee del vostro /var/log/mail.log. Darà sicuramente spunti per risolvere il problema. O leggete le sezione per la risoluzione dei problemi. O aggiungete un commento in questa pagina e chiedete aiuto ad altri utenti.

Potete usare anche uno strumento leggermente più comodo per accedere alle Maildir che vi tornerà utile come amministratori di un server di posta: “mutt”.

mutt -f /var/vmail/example.org/john/Maildir

(Vi potrà essere chiesto di creare /root/Mail – questa è una procedura standard. Premete semplicemente Enter.)

Quello che vediamo ora sono i contenuti della mailbox di John:


Usare mutt è un modo carino di controllare le mailbox mentre siete loggati nel server di posta.

Ripetiamo cosa succede quando riceviamo una mail:

  1. Postfix riceve la mail (usando il comando “sendmail” in questo esempio – ma di solito dalla rete usando il protocollo SMTP da altri server)
  2. Postfix parla con Dovecot via LMTP e gli passa la mail
  3. Dovecot scrive la file della mail sul disco

Accedere alla mail tramite IMAP (Roundcube)

Ora che l’email è stata consegnata possiamo parlare con Dovecot usndo il protocollo IMAP per recuperare nuovamente la nostra mail. Siete ancora loggati con l’interfaccia Roundcube? Basta ricaricare e vedremo l’email:


Accedere alla mail tramite IMAP (mutt)

Nell’ultima sezione abbiamo usato mutt per accedere alla Maildir direttamente sul disco. Ma ricordiamoci che mutt parla anche IMAP:

mutt -f imaps://john@example.org@localhost

Mostra l’email? Bene.

Accedere alla mail tramite IMAP (client desktop)

I nostri utenti difficilmente useranno “mutt” per leggere le loro mail – a meno che siano degli immortali nerd della console.  Naturalmente possiamo usare un client mail grafico per accedere alle mail di John. Se usate Thunderbird, Evolution, A**le Mail o qualche altro client IMAP, allora potete tranquillamente configurare un nuovo account IMAP e connettervi al server. Ricordatevi che il nome utente e l’indirizzo email sono entrambi “john@example.org” e che la password è “summersun”.

POP3 contro IMAP

A parte parlare IMAP, Dovecot sa anche come parlare POP3. Ma diciamocelo – POP3 è morto. Non lo offro più ai miei utenti. Ma siccome i vostri utenti potrebbero chiedere, esaminiamo velocemente le differenze dei due protocolli:

  • POP3 (Post Office Protocol) è un semplice protocollo che vi permette di prelevare mail da una singola mailbox. Di solito è usato per prelevare tutte le mail, anche se è possibile lasciarle sul server ma è una specie di hack. Salva spazio sul server di posta perché le mail vengono trasferite sul disco del computer dell’utente. Ma non sarà in grado di accedere alla stessa mail da un altro computer. Tra l’altro non è possibile creare cartelle multiple sul server per suddividere la posta. C’è solo l’inbox. Questa variante è antiquata e non esattamente user-friendly.
  • IMAP (Internet Messaging Application Protocol) è pensato principalmente per lasciare la posta sul server ma è possibile anche prelevarla come POP3. L’inbox è dove vengono salvate le mail in arrivo ma gli utenti possono creare cartelle e spostarci dentro le mail. IMAP è utile quando si vuole accedere alla propria posta da posti diversi senza per questo perdere mail perché sono già state scaricate da un altro posto. Il lato negativo è che utenti pigri lasciano la loro posta sul server riempiendo il disco rigido del server (a meno che usiate quote disco).

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.