Installazione e configurazione di Postfix

Consiglio l'utilizzo di un utente non-root, in questa guida utilizzerò il nome utente grok.

Assicuriamoci di aggiornare l'indice dei pacchetti. Aprire il terminale e dare questo comando:
sudo apt-get update

Postfix si trova nei repository ufficiali di Ubuntu, quindi installiamolo utilizzando la variabile di sistema DEBIAN_PRIORITY=low per installare anche i pacchetti addizionali:
sudo DEBIAN_PRIORITY=low apt-get install postfix

Queste sono le informazioni che vi verranno chieste durante l'installazione:

  • General type of mail configuration?: Internet Site
  • System mail name: esempio.com (Non inserite mail.esempio.com)
  • Root and postmaster mail recipient: grok
  • Other destinations to accept mail for: $myhostname, esempio.com, mail.esempio.com, localhost.esempio.com, localhost
  • Force synchronous updates on mail queue?: No
  • Local networks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
  • Mailbox size limit: 0
  • Local address extension character: +
  • Internet protocols to use: all

Se avete bisogno di reinserire queste informazioni, quindi riconfigurare postfix, dare questo comando:
sudo dpkg-reconfigure postfix

Impostiamo la variabile home_mailbox in Maildir/ che andrà a creare una struttura di file e cartelle nella home directory dell'utente utilizzato:
sudo postconf -e 'home_mailbox= Maildir/'

Successivamente impostiamo la posizione della tabella virtual_alias _maps. Questa tabella elabora gli account di posta elettronica. La creiamo in /etc/postfix/virtual.
Utilizziamo questo comando:
sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'

Apriamo il file:
sudo nano /etc/postfix/virtual

Se per esempio volete accettare l'email su [email protected] e [email protected] e volete che queste arrivino all'utente grok, scrivere il file in questo modo:

[email protected]pio.com grok
[email protected] grok

Salvate e chiudete il file:

Applichiamo le modifiche in questo modo:
sudo postmap /etc/postfix/virtual

Riavviamo postfix:
sudo systemctl restart postfix

Se avete il firewall abilitato dare questo comando:
sudo ufw allow Postfix

Per assicurarci che le variabili siano impostate in modo corretto, per permettere l'utilizzo di diversi tipi di accesso agli account (ssh, su, sudo etc) dobbiamo impostare le variabili in diversi file.
Da terminale dare questo comando:
echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh

Per eseguire le variabili nella sessione corrente dare questo comando:
source /etc/profile.d/mail.sh

Installazione del client email S-Nail

S-Nail è un package presente di default su Ubuntu per gestire correttamente il formato Maildir.
Per installarlo dare questo comando:
sudo apt-get install s-nail

Apriamo il file di configurazione di s-nail:
sudo nano /etc/s-nail.rc

Aggiungere alla fine del file queste righe:

set emptystart
set folder=Maildir
set record=+sent

Salvate e chiudete il file.

Testiamo il client

Inviamo un email a noi stessi per testare il client e per creare la struttura Maildir nella nostra home.
Da terminale:
echo 'init' | mail -s 'init' -Snorecord grok

Dovreste ricevere una risposta simile a questa:

Can't canonicalize "/home/grok/Maildir"

Vedrete questa risposta solamente dopo il primo messaggio, è normale.
Possiamo controllare adesso se la struttura all'interno di Maildir si è generata correttamente:
ls -R ~/Maildir

Dovreste ricevere una risposta simile a questa:

/home/grok/Maildir/:
cur  new  tmp
/home/grok/Maildir/cur:
/home/grok/Maildir/new:
23452345.IAUas876sdAS76D.mail.esempio.com
/home/grok/Maildir/tmp:
It looks like our mail has 
been delivered.
Gestiamo l'email con il Client

Per controllare le nostre mail, da terminale scrivere:
mail

Dovreste vedere la vostra email ricevuta:

s-nail version v14.x.x.  Type ? for help.
"/home/grok/Maildir": 1 message 1 new
N  1 [email protected]     Wed June 20 19:00   14/369   
init

Premere INVIO per leggere l'email

[-- Message  1 -- 14 lines, 369 bytes --]:
From [email protected] Wed June 20 19:00:00 1969
Date: 11 May 2017 15:05:22 -0400
To: [email protected]
Subject: init
Message-Id: [email protected]
From: [email protected]
init

Per tornare indietro premere h poi invio, per uscire q.

Possiamo testare l'invio di email scrivendo il testo in un editor di testo.
Da terminale:
nano ~/messaggio

Ciao,
Email di prova, file di testo!

Da terminale:
cat ~/messaggio | mail -s 'Oggetto dell'email' -r from_field_account [email protected]

Le opzioni sono:

  • -s: L'oggetto dell'email.
  • -r: Opzionale è possibile cambiare il campo From. Di default verrà utilizzato il nome utente con il quale siete connessi. L'opzione -r ti permette di sovrascrivere il valore di default.
  • [email protected]: L'indirizzo email a cui inviare l'email.

Per visualizzare i messaggi inviati, da terminale:
file +sent

L'installazione è terminata.