Learning Center
Servizi Webmail

Come configurare un server di posta elettronica personale

27 ott 2025
Hostman Team
Hostman Team

Un server di posta (mail server) è un sistema che gestisce l’invio e la ricezione corretta delle e-mail tra mittente e destinatario. Ad esempio, quando invii un’e-mail tramite Gmail, stai utilizzando il server di posta di Google.

Un client di posta, invece, è un programma che serve per leggere, inviare e archiviare le e-mail. Esempi comuni sono Microsoft Outlook, Thunderbird e altri.

Protocolli per la ricezione e l’invio di e-mail
Copia link

SMTP (Simple Mail Transfer Protocol)
Copia link

Il server di posta in uscita utilizza il protocollo SMTP, acronimo di Simple Mail Transfer Protocol.
 Le sue funzioni principali sono:

  • Verificare la configurazione del mittente e consentire al dispositivo di inviare l’e-mail.

  • Trasmettere il messaggio e ricevere il codice di risposta.

I server SMTP utilizzano le porte 25 (non crittografata) e 465 (crittografata).

POP3 (Post Office Protocol)
Copia link

POP3 è un protocollo per ricevere le e-mail. Permette al client di posta di connettersi al server e scaricare i messaggi sul dispositivo locale, rendendoli disponibili anche offline. Di default, i messaggi vengono rimossi dal server remoto (ma è possibile mantenere una copia).

POP3 utilizza le porte 110 (non crittografata) e 995 (SSL/TLS crittografata).

IMAP (Internet Message Access Protocol)
Copia link

Come POP3, IMAP viene utilizzato per ricevere e gestire le e-mail, ma consente di farlo direttamente sul server, senza scaricarle. È ideale per chi accede alla posta da più dispositivi.

IMAP usa le porte 143 (non crittografata) e 993 (SSL/TLS crittografata).

Perché configurare un proprio server di posta?
Copia link

La risposta più comune è:

“Per usare il mio dominio personale nell’indirizzo e-mail.”

È vero, ma non è tutto. Puoi usare un dominio personalizzato anche senza creare un server dedicato. Molti servizi permettono di collegare il dominio ai loro server e gestiscono tutto automaticamente. Il vantaggio principale è che forniscono già un server SMTP configurato, evitando di impostare manualmente inoltri, filtri antispam o opzioni avanzate. Devi solo impostare correttamente i record NS (Name Server) — molto più semplice che costruire un mail server da zero.

Tuttavia, i servizi di terze parti hanno dei limiti:

  • Controllo ridotto: non hai il pieno controllo del sistema di posta.

  • Limiti di invio: ogni provider impone un limite al numero di messaggi inviabili.
    Se invii molte e-mail (ad esempio per uso aziendale o newsletter), questi limiti possono diventare restrittivi.

Creando un server di posta personale, invece, puoi gestire:

  • Quote di posta e limiti di invio

  • Backup regolari per evitare la perdita di dati

  • Blacklist antispam

  • Permessi di accesso per più utenti

Un server di posta personale offre controllo totale, ma richiede competenze tecniche e manutenzione costante.

Configurare un server di posta
Copia link

In questa guida vedremo come creare un server e-mail personale. Utilizzeremo un server cloud Hostman con Ubuntu 20.04 come sistema operativo.

Il server sarà configurato con crittografia, protezione antispam e un pannello di amministrazione web per gestire gli account.

Preparazione del server
Copia link

Passa alla modalità superutente:

sudo su

Aggiorna i pacchetti:

apt update && apt upgrade

Verifica che l’hostname del server corrisponda al dominio della tua e-mail:

hostname

Se non corrisponde:

hostnamectl set-hostname mail.hostname.com

(Sostituisci mail.hostname.com con il tuo hostname effettivo.)

Configura il fuso orario installando chrony per la sincronizzazione:

apt install chrony
timedatectl set-timezone Europe/Athens

Puoi visualizzare tutti i fusi orari con:

timedatectl list-timezones

Abilita chrony:

systemctl enable chrony

Aprire le porte necessarie
Copia link

Usa iptables per aprire le porte:

  • 25, 465 — SMTP (invio)

  • 110, 995 — POP3 (ricezione)

  • 143, 993 — IMAP (ricezione)

  • 80, 443 — HTTP/HTTPS (interfaccia web)
iptables -I INPUT 1 -p tcp --match multiport --dports 25,110,143,465,587,993,995,80,443 -j ACCEPT

Rendi le regole permanenti:

netfilter-persistent save

Ora che il server è configurato correttamente, possiamo procedere all'installazione del software necessario per creare un server di posta completamente funzionante.

Installazione e configurazione di Postfix
Copia link

Postfix è un MTA (Mail Transfer Agent) open source con architettura modulare.
Installa Postfix e il pacchetto per MySQL:

apt install postfix postfix-mysql

Durante l’installazione:

  • Seleziona Internet Site.

  • Specifica il nome di dominio completo (FQDN).

Crea un utente dedicato per la gestione delle e-mail:

addgroup -gid 1080 vmail

Successivamente, crea l'utente vmail e assegna la directory home a /home/mail:

adduser --home /home/mail -gid 1080 -uid 1080 vmail

Controlla i permessi:

ll /home

Configurazione di Postfix
Copia link

Apri il file principale:

nano /etc/postfix/main.cf

Aggiungi o modifica le seguenti righe:

# Domains we accept mail for
mydestination = localhost.$mydomain, localhost, localhost.localdomain
# Postfix protocol
inet_protocols = ipv4
# Path to the public certificate
smtpd_tls_cert_file = /etc/ssl/mail/public.pem
# Path to the private certificate
smtpd_tls_key_file = /etc/ssl/mail/private.key
Then, add additional options required for Postfix to function correctly:
# Mail storage location
virtual_mailbox_base = /home/mail
# Path to alias maps
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf
# Domain storage format
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
# Mailbox storage format
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
# Minimum virtual user ID
virtual_minimum_uid = 1080
# UID for the main user handling mail
virtual_uid_maps = static:1080
# GID for the group handling mail
virtual_gid_maps = static:1080
# Register Dovecot as the mail delivery agent
virtual_transport = dovecot
# Enable secure authentication
smtpd_sasl_auth_enable = yes
smtpd_sasl_exceptions_networks = $mynetworks
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
# Enable TLS encryption for outgoing SMTP connections
smtp_use_tls = yes
# Enable TLS support for incoming connections
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtpd_helo_required = yes

File di mapping MySQL
Copia link

Alias:

nano /etc/postfix/mysql_virtual_alias_maps.cf

Aggiungere il seguente contenuto:

user = postfix
password = postfixPa$$w0rd
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'

Domini:

nano /etc/postfix/mysql_virtual_domains_maps.cf

Aggiungere

user = postfix
password = postfixPa$$w0rd
hosts = localhost
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%u'

Mailbox:

nano /etc/postfix/mysql_virtual_mailbox_maps.cf

Agguingere

user = postfix
password = postfixPa$$w0rd
hosts = localhost
dbname = postfix
query = SELECT CONCAT(domain,'/',maildir) FROM mailbox WHERE username='%s' AND active = '1'

Modifica di master.cf

nano /etc/postfix/master.cf

Aggiungi:

submission   inet  n  -  n  -  -  smtpd
-o smtpd_tls_security_level=may
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=/var/spool/postfix/private/auth
-o smtpd_sasl_security_options=noanonymous
-o smtpd_sasl_local_domain=$myhostname
smtps   inet  n  -  n  -  -  smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
dovecot   unix  -  n  n  -  -  pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}

Generazione dei certificati di sicurezza
Copia link

Crea la directory per i certificati:

mkdir -p /etc/ssl/mail

Genera i certificati:

openssl req -new -x509 -days 1000 -nodes -out /etc/ssl/mail/public.pem -keyout /etc/ssl/mail/private.key -subj "/C=CY/ST=Limassol/L=Limassol/O=Global Security/OU=IT Department/CN=mail.devnullhost.com"

Abilita e riavvia Postfix:

systemctl enable postfix && systemctl restart postfix

Installazione e configurazione di Dovecot
Copia link

Dovecot è un server IMAP e POP3 open source. Installalo insieme ai moduli MySQL:

apt install dovecot-imapd dovecot-pop3d dovecot-mysql

Apri il file:

nano /etc/dovecot/conf.d/10-mail.conf

Imposta la posizione della posta:

mail_location = maildir:/home/mail/%d/%u/

Abilita SSL:

service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
unix_listener auth-userdb {
mode = 0600
user = vmail
group = vmail
}
}
service stats {
unix_listener stats-reader {
user = vmail
group = vmail
mode = 0660
}
unix_listener stats-writer {
user = vmail
group = vmail
mode = 0660
}
}

Modifica il file di configurazione dell'autenticazione Dovecot:

nano /etc/dovecot/conf.d/10-auth.conf

Sostituisci la riga !include auth-system.conf.ext con !include auth-sql.conf.ext, indicando che deve essere utilizzata l'autenticazione basata su SQL.

Successivamente, configura la crittografia SSL in Dovecot:

nano /etc/dovecot/conf.d/10-ssl.conf

In questo file, aggiungi quanto segue:

ssl = required
ssl_cert = </etc/ssl/mail/public.pem
ssl_key = </etc/ssl/mail/private.key

Creazione automatica delle mailbox:

nano /etc/dovecot/conf.d/15-lda.conf

Aggiungere la seguente riga:

lda_mailbox_autocreate = yes

Ora, configura Dovecot per connettersi al database. Apri il file di configurazione SQL:

nano /etc/dovecot/dovecot-sql.conf.ext

Connessione MySQL:

driver = mysql
connect = host=localhost dbname=postfix user=postfix password=postfixPa$$w0rd
default_pass_scheme = MD5-CRYPT
password_query = SELECT password FROM mailbox WHERE username = '%u'
user_query = SELECT maildir, 1080 AS uid, 1080 AS gid FROM mailbox WHERE username = '%u'
user_query = SELECT CONCAT('/home/mail/',LCASE(`domain`),'/',LCASE(`maildir`)), 1080 AS uid, 1080 AS gid FROM mailbox WHERE username = '%u'

Aprire il file di configurazione principale di Dovecot per impostare l'interfaccia del server:

nano /etc/dovecot/dovecot.conf

In questo file, aggiungi la seguente riga per ascoltare tutte le interfacce di rete disponibili:

listen = *

Abilita Dovecot:

systemctl enable dovecot && systemctl restart dovecot

Installazione e configurazione di PostfixAdmin
Copia link

Prerequisiti: web server, PHP e MySQL. Installa le estensioni PHP:

apt install php-mysql php-mbstring php-imap

Scarica PostfixAdmin:

wget https://sourceforge.net/projects/postfixadmin/files/latest/download -O postfixadmin.tar.gz

Creare una directory per PostfixAdmin ed estrarre il contenuto dell'archivio:

mkdir -p /var/www/html/postfixadmin && tar -C /var/www/html/postfixadmin -xvf postfixadmin.tar.gz --strip-components 1

Quindi, crea una directory per archiviare le cache dei modelli:

mkdir /var/www/html/postfixadmin/templates_c

Impostare le autorizzazioni corrette affinché il server web possa accedere alla directory PostfixAdmin:

chown -R www-data:www-data /var/www/html/postfixadmin

Crea il database:

mysql -u root
CREATE DATABASE postfix DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON postfix.* TO 'postfix'@'localhost' IDENTIFIED BY 'postfixPa$$w0rd';
exit;

Configura PostfixAdmin:

nano /var/www/html/postfixadmin/config.local.php

Il contenuto del file dovrebbe essere:

<?php
$CONF['configured'] = true;
$CONF['default_language'] = 'en';
$CONF['database_password'] = 'postfixPa$$w0rd';
$CONF['emailcheck_resolve_domain']='NO';
?>

Apri la pagina di configurazione di PostfixAdmin nel tuo browser andando su /postfixadmin/public/setup.php. Ti verrà richiesto di generare un hash della password per l'autenticazione.

Inserisci la password e clicca sul pulsante. Un messaggio contenente l'hash apparirà sotto il modulo. Copia questo hash e inseriscilo nel file config.local.php:

nano /var/www/html/postfixadmin/config.local.php

Aggiorna la pagina /postfixadmin/public/setup.php e accedi con la password utilizzata per generare l'hash. Se tutto è configurato correttamente, dovresti visualizzare una pagina di controllo della configurazione.

In fondo a questa pagina, è presente un modulo per creare un account amministratore. Dopo aver creato correttamente l'account amministratore, vai su /postfixadmin/public/login.php e accedi con le credenziali appena impostate.

Verrai reindirizzato al pannello di amministrazione di PostfixAdmin.

Creare una casella di posta
Copia link

Nel pannello web:

  • Vai su Domain List → New Domain

  • Poi su Overview → Create Mailbox

Imposta i parametri di connessione nel client e-mail:

Tipo

Porta

Sicurezza

IMAP

143

STARTTLS

POP3

110

STARTTLS

SMTP

25

STARTTLS

Login e password: le credenziali create in PostfixAdmin.

Conclusione
Copia link

In questa guida abbiamo visto come creare un server e-mail autogestito e configurarlo completamente. Con un server personale hai controllo totale: puoi creare caselle illimitate, definire alias e gestire gli utenti.

Tutto questo può essere realizzato facilmente su un server cloud Hostman, seguendo passo dopo passo le istruzioni di questa guida.