Google con GMAIL, Microsoft con Hotmail/Outlook forniscono account di posta elettronica gratuita ma le mail vengono analizzate e utilizzate a fini di marketing.
Se desiderassimo mantenere le nostre mail fuori da questi giri, come è possibile fare?
Potremmo optare per una soluzione casalinga o privata.

Non è una cosa comune costruirsi un mail server, ma con un po’ di conoscenze è possibile predisporre un ambiente funzionale per gestire il flusso mail di qualche utente ad un costo contenuto.

Se si disporre di un indirizzo IP fisso per la propria linea Internet, si può ospitare il server di posta a casa, altrimenti con una decina di euro al mese (o anche meno) si possono acquistare dei VPS (virtual private server) sui quali predisporre il nostro server di posta.
Nel nostro caso optiamo per un VPS con Ubuntu 18.04, che offre aggiornamenti di sicurezza per parecchi anni.

Come risorse disponibili è sufficiente 1 GB di RAM e 1 CPU, anche un Raspberry Pi va bene. Invece per lo spazio disco, beh… Questo dipende dalle vostre necessità: calcolando che circa 5 GB di spazio disco sono necessari per il sistema operativo, altri 10 GB sono sufficienti in un ambiente con 7-8 account mail attivi se si usa una politica di svecchiamento delle vecchie mail e degli allegati.

E’ possibile acquistare una VPS a circa 54 euro l’anno (5 dollari al mese) con 1 GB di RAM e 25 GB di disco su Digital Ocean, scegliendo il piano Basic Droplet. In alternativa con circa 44 euro l’anno, si può avere una VPS su OVH VPS 2018 SSD 1 da 2 GB di RAM e 20 GB di disco.

Acquistata il VPS oppure predisposto il nostro server casalingo, si può installare l’ecosistema posta elettronica con uno script predisposto di mailinabox.email che fa uso di certificati TLS Let’s Encrypt, gratuiti.  E’ bene utilizzare un IP pubblico che non cambia (statico) in quanto potrebbero verificarsi problemi di ricezione delle mail da parte dei destinatari in quanto potrebbero essere considerati messaggi di spam (vedi articolo https://www.valent-blog.eu/2019/12/23/garantire-la-ricezione-delle-e-mail/)

Lo script prevede che sul server che andremmo ad usare non ci siano altri software (es. Apache) o servizi installati se non quelli previsti dall’installazione mimimal di Ubuntu 18.04, perchè Mailinabox andrà ad installare Nginx e altri componenti come Postfix, Dovecot e Nextcloud.

Procedura

Toshiba 4TB Canvio Basics Portable External Hard Drive,USB 3.2. Gen 1, Black (HDTB440EK3AA)

La prima cosa da fare è assegnare un hostname appropriato al server. Se andremmo a creare un account di posta come @pyroplastic.stream, potremmo decidere di chiamare il nostro server posta.pyroplastic.stream.

Il nome del mail server deve essere risolvibile dai nostri DNS e da quelli su Internet; per assegnare un hostname definitivo e permanente occorre inserire tale nome nel file /etc/HOSTNAME

sudo echo posta.pyroplastic.stream > /etc/hostname

Verifichiamo tramite il comando hostname che il nome del server sia corretto.

hostname
hostname --fqdn

Aggiorniamo il server con gli ultimi pacchetti disponibili:

sudo apt update && sudo apt upgrade

Poi riavviamo il server, in modo che il kernel e altri software possano girare all’ultima versione.

Successivamente si può lanciare lo scaricamento dello script e la conseguente installazione:

wget https://mailinabox.email/setup.sh
sudo bash setup.sh

Lo script ad un certo punto inizierà a mostrare delle schermate in cui vengono chieste alcune informazioni:

Ora è possibile aggiungere il primo account di posta da attivare sul nuovo mail server. Questo account sarà necessario per accedere anche alla console di gestione.

Nella successiva schermata, viene chiesto di inserire l’hostname del proprio server:

Se si è presa una VPS su Internet, può essere che venga chiesto quale è l’indirizzo IP pubblico del server, solitamente il campo è precompilato già in maniera corretta.

Viene chiesto di impostare il fuso orario (time zone), basta scegliere Europe e poi Rome.

Durante l’installazione, è possibile vedere quale indirizzo IP viene assegnato al server. In questo caso, il server è posto in una rete privata (casalinga) con un indirizzo pubblico associato (indirizzo di NAT).

Invece se il server ha già un suo indirizzo pubblico, viene mostrato solo questo:

Viene chiesto di fornire una password per il proprio account, da usare anche per fare login sul pannello di controllo.

Una volta terminata la configurazione è possibile collegarsi alla console di gestione tramite la pagina web https://posta.pyroplastic.stream/admin, dove posta.pyroplastic.stream è il nome del nostro mail server.

Colleghiamaoci al pannello di gestione di Mail-in-a-Box:

Per aggiungere un nuovo account di posta, basta andare nella sezione mail poi users

Aggiungiamo un account, es. rosa:

Aggiunto l’utente, possiamo entrare nella sua webmail (roundcube) su https://posta.pyroplastic.stream/mail/

Oltre alla webmail è possibile configurare l’account anche su un mail client come Thunderbird.

I valori da usare sono questi (ovviamente posta.pyroplastic.stream va cambiato col vostro hostname):

OpzioneValore
ProtocoloIMAP
Mail serverposta.pyroplastic.stream
IMAP Port993
IMAP SecuritySSL or TLS
SMTP Port587
SMTP Security STARTTLS (“always” or “required”, se richiesto)
Username:L’intero indirizzo mail es. rosa@pyroplastic.stream
Password:La password dell’utente

Configurare un certificato TLS

Per configurare un certificato TLS (SSL) si può usare Let’s Encrypt. Basta andare nel meù System, TLS (SSL) Certificates.

Cliccando sul pulsante Provision, sarà possibile attivare il certificato.

Dopo pochi secondi compare una schermata che segnala che il certificato è ok. Il certificato ha una durata di 89 giorni, ma sarà rinnovato automaticamente in futuro.

Accedere a Nextcloud

Mail-in-a-Box, oltre a predisporre un server di posta elettronica, installa anche NextCloud uno software che consente di tenere aggiornati i propri contatti oppure di caricare i file personali sul server come se fosse Dropbox o Owncloud.

Per accedere al proprio NextCloud basta puntare all’indirizzo: https://posta.pyroplastic.stream/cloud/ e fare login con le stesse credenziali dell’account di posta: es. rosa@pyroplastic.stream

Questo server mail è ospitato su AlexHost.com, in particolare abbiamo scelto il PROMO KVM VDS 0.99/mo, che consente di avere una VPS con 1536MB RAM e 10 GB di spazio disco ad un prezzo contenuto.

Aggiornamento di mailinabox

Mailinabox, come tutti gli altri software, va aggiornato periodicamente onde evitare di essere vittime di attacchi informatici.

Controlla periodicamente il pannello di controllo per vedere che il rapporto Controlli dello stato del sistema sia tutto OK. La tua casella ti invierà automaticamente un’e-mail ogni volta che qualcosa cambia nei controlli di stato.

Per aggiornare il software, rieseguire lo script di installazione digitando sudo mailinabox al prompt del terminale SSH.

Di valent

8 commenti a “Creare un proprio server di posta elettronica”
  1. Bungiorno Valent,
    grazie per il post.
    Avrei alcune domande da fare:
    Ho capito bene che potrei implementare il mio server tramite un raspberry e senza acquistare uno spazio VPS; inoltre dispongo di un indirizzo ip pubblico.
    In relazione al nome server che hai usato nell’esempio ci sono delle regole particolari da osservare ovvero delle estensioni che possono o non possono essere usate?
    Grazie in anticipo per le risposte.
    Saluti. Carlo

  2. Ciao,
    sì puoi farlo con un Raspberry Pi, il problema è che l’indirizzo IP pubblico che ti viene assegnato dal provider ISP non dovrebbe cambiare. Questo perchè i meccanismi di controllo delle blacklist si basano principalmente sulla reputazione di un indirizzo IP quindi se il tuo continua a cambiare non riesci a farti una buona reputazione oppure può capitare che in alcune occasioni prendi un IP che ha una cattiva reputazione e quindi i tuoi messaggi di posta elettronica non vengono recapitati oppure finiscono nella cartella dello spam del destinatario del messaggi.
    Problemi con domini particolari non ce ne sono in realtà: usare un dominio tipo aziendamia.it (con caselle tipo paolo@aziendamia.it) oppure cognome.xyz (es. paolo@cognome.xyz) non cambia molto. Conta molto di più la questione dell’IP.

  3. Buona sera sono Dario

    volevo sapere se posso gestire più account di posta es: @yxz.com @wxc.it ecc.ecc.

    Grazie mille per la risposta

  4. Ciao,
    se hai più domini sicuramente non puoi impostare più reverse DNS sullo stesso IP quindi perderesti questa possibilità.
    Ad ogni modo, potrai dopo aver impostato i DNS del dominio alternativo verso il server di posta, aggiungere un account e-mail o un alias utilizzando il pannello di controllo. La cosa è abbastanza semplice.

    In particolare l’aggiunta la puoi fare qui: null inserendo come utente es. pinco@pallino.it

  5. Buongiorno Valent,
    purtroppo lo scrip iniziale “setup.sh” funzona solo per Ubuntu …
    Su raspberry come si può procedere?
    Grazie

  6. Ciao, ho visto il video del sito, ma la procedura da loro illustrata risulta piu lunga; leggendo il tuo articolo, ho visto che la tua sembra piu breve. Quello che vorrei è crearmi un mio server email e ho visto che la tua guida è quella piu completa rispetto ad altre. Cosa mi consigli di fare?

  7. “bash setup.sh” mi dà l’errore seguente:
    This script may be used only on a machine running Ubuntu 14.04
    Si puo fare qualcosa? Ho Linux Mint 21.1 Cinnamon
    grazie infinite

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *