hMailServer - Mail Server open-source per Windows con gestione POP3, SMTP, IMAP, AntiVirus/AntiSpam e altro

hMailServer - Mail Server open-source per Windows con gestione POP3, SMTP, IMAP, AntiVirus/AntiSpam e altro

Una delle necessità più frequenti quando si acquista un server dedicato è quella di gestire in proprio gli indirizzi e-mail relativi ai propri domini web. I principali software di gestione MHS (acronimo per message-handling services, ovvero servizi per la gestione di messaggi) sono:

Salta subito all'occhio che questi software, che messi assieme coprono oltre l'80% dei server web su scala mondiale, possono essere raggruppati in due categorie principali: per sistemi Unix oppure a pagamento.

Cosa possiamo fare se il nostro server dedicato è sotto Windows? La risposta è molto semplice: ci prepariamo ad acquistare una licenza di Microsoft Exchange oppure rivolgiamo le nostre attenzioni a hSendMail, un interessantissimo Mail Server gratuito per Windows sviluppato da Martin Knafve e recentemente reso disponibile su licenza AGPL.

Nel caso in cui siate interessati ad approfondire la seconda ipotesi, vi invitiamo a proseguire la lettura.

Panoramica

La versione 5.6 di hMailServer (gennaio 2015) è compatibile con tutti i sistemi operativi Windows server e desktop da XP/2003 in poi: il software presenta un allestimento davvero completo, in grado di soddisfare tutte le esigenze più comuni: il server supporta i principali protocolli MTA (POP3, SMTP, IMAP), una GUI di gestione disponibile in tutte le lingue principali (incluso l'italiano) e accessibile anche dal web e una serie di funzionalità avanzate tra cui:

  • Virtual domains
  • Built-in backup
  • SSL encryption
  • Anti-spam
  • Anti-virus
  • Scripting
  • Server-side rules
  • Multilingual
  • Routing
  • MX backup
  • Multihoming
  • SQL backend

E' inoltre possibile configurarlo come mail server predefinito per i principali WebMail client in Ajax/PHP/.NET (RoundCube, SquirrelMail, etc.). Cosa volere di più?

Installazione

Per prima cosa, prelevate l'ultima versione di hMailServer dalla sezione Download del sito ufficiale. L'installazione, oltre ad essere molto semplice, è descritta dettagliatamente nell'apposito paragrafo della documentazione ufficiale. Fate particolare attenzione alla schermata in cui viene chiesto il database da utilizzare:

hmailserver.choose.db

Scegliere il Database

La versione 5.6 di hMailServer supporta quattro differenti database:

Il database scelto verrà utilizzato per immagazzinare alcune opzioni di configurazione e, soprattutto, la totalità dei messaggi delle varie caselle di posta: si tratta quindi di una scelta particolarmente importante. Gli autori, oltre a ricordarci che l'utilizzo di Microsoft SQL Server CE non è consentito a server aventi finalità commerciali, consigliano l'utilizzo di Microsoft SQL Server ovvero PostgreSQL, per un discorso di prestazioni e, soprattutto, affidabilità. La nostra installazione, felicemente attiva da molti anni, utilizza orgogliosamente l'ultima versione di MySQL Community Edition: una scelta che, stante la pressoché totale assenza di problemi, ci sentiamo a nostra volta di consigliare.

Al termine dell'installazione verrà presentata la schermata relativa alla scelta della password di amministrazione:

hmailserver_install_step_8

Scegliete una password adeguata e annotatela in posto sicuro, quindi lanciate l'icona hMailServer Administrator che il programma d'installazione avrà creato sul vostro desktop e/o nel pannello Start. Vi verrà quindi chiesto a quale installazione connettersi, in quanto il software di amministrazione può essere utilizzato per gestire più istanze di hMailServer presenti nello stesso network. Se siete alla prima installazione non avrete dubbi in proposito:

hmailserver_install_step_9

Collegare hMailServer al Database

Se avete scelto di utilizzare una istanza built-in di MS SQL Compact Edition saltate pure questo paragrafo, in caso contrario sarà necessario completare un wizard aggiuntivo per consentire all'istanza di hMailServer appena installata di connettersi al tipo di database scelto. Una volta scelto l'engine (MSSql, MySql o PostgreSql) il wizard vi chiederà se utilizzare un database già esistente oppure crearne uno nuovo. In entrambi i casi sarà necessario inserire i parametri di connessione: assicuratevi che l'utente possieda i privilegi necessari per accedere in scrittura al database esistente ovvero creare un nuovo database.

hmailserver.choose.db.02

Configurazione

Configurare hMailServer è piuttosto semplice, a patto di comprendere il funzionamento delle molteplici sezioni in cui è suddivisa la GUI di gestione. Nei paragrafi successivi indicheremo le operazioni principali da effettuare per mettere in piedi le funzionalità più comuni di un Mail Server. La prima che andremo a dettagliare, nonché la più importante, è senz'altro quella relativa alla configurazione delle caselle di posta, ovvero dei servizi POP3, IMAP e SMTP relativamente a un dominio in vostro possesso. Per fare questo dovrete:

  • impostare i Record MX del vostro dominio in modo che siano associati al vostro server.
  • aggiungere il vostro dominio alla configurazione di hMailServer.
  • configurare le caselle di posta, gli alias e/o le liste di distribuzione tramite hMailServer.
  • abilitare i protocolli POP3 e/o IMAP.

Impostare i Record MX

E' opportuno ricordare che per gestire manualmente la posta di dominio è necessario aver impostato correttamente i cosiddetti MX Records, ovvero le informazioni che consentono di determinare che il dominio in questione è in grado di accettare richieste di invio di messaggi di posta mediante protocollo SMTP. L'operazione da fare è quindi entrare nel pannello di gestione DNS relativo al vostro dominio e aggiungere (o modificare) i Record MX necessari. Vediamo come fare nel caso di domini registrati tramite Aruba, uno dei più noti e diffusi provider di servizi web sul territorio italiano.

aruba.gestione.dns

Collegatevi all'Area Clienti e inserite le vostre credenziali: entrate quindi nel pannello di gestione del vostro dominio, dove avrete la possibilità di accedere alla sezione denominata Gestione DNS e Name Server.

Da lì dovrete:

  • creare uno o più record A a seconda del tipo di servizi che volete gestire (mx.vostrodominio.it, pop3.vostrodominio.it, smtp.vostrodominio.it, imap.vostrodominio.it, etc.): ciascuno di essi andrà associato all'indirizzo IP del server sul quale volete gestire le caselle e-mail relative al vostro dominio.
  • creare altrettanti record MX, associandoli ai record A appena creati.

Una volta fatto questo non dovrete far altro che aspettare la propagazione delle informazioni appena inserite: nel giro di qualche ora il vostro server verrà registrato come responsabile della gestione mail del dominio indicato e i vostri utenti avranno la possibilità inviare (e ricevere) le e-mail.

Aggiungere un dominio

Portatevi nella schermata Welcome e fate click su Add Domain... : comparirà un pannello di impostazioni diviso per tab: inserite l'hostname che intendete gestire nel tab General (nel formato hostname.com): se ne avete bisogno potete anche configurare degli alias, ovvero degli hostname alternativi che sarà possibile associare agli account di posta che aggiungeremo tra poco, nel tab Names. Fate click sul pulsante Save in basso a destra: verrà creata una entry relativa al dominio in questione.

hMailServer.add.domain

Configurare le caselle di posta

Per ciascun dominio creato in questo modo vengono create anche tre sotto-cartelle relative, rispettivamente, agli Account di posta, agli Alias e alle Liste di Distribuzione. Di cosa si tratta?

Account

Ciascun account corrisponde a una casella di posta vera e propria, nella quale il server immagazzina i messaggi diretti all'indirizzo e-mail [email protected]. In tutti i casi in cui volete dotare un utente di una casella e-mail accessibile mediante client POP3 o IMAP presso il vostro server, dovete creare un account.

Alias

un alias, come dice il nome, non è altro che un nome alternativo per una casella e-mail già esistente. Si tratta in buona sostanza di un indirizzo e-mail fittizio, collegato a un altro indirizzo di posta elettronica al quale verranno inviate in tempo reale tutte le e-mail ricevute dall'alias. Tutto ciò che dovete fare è creare un indirizzo del tipo [email protected] e specificare l'indirizzo e-mail al quale il server dovrà inviare i messaggi. Nella maggior parte dei casi gli alias sono collegati a caselle di posta reali presenti nello stesso dominio, ma hMailServer consente di creare alias relativi a indirizzi presenti su qualsiasi dominio, sito o server. E' anche possibile creare Alias relativi a un altro Alias o a una Lista di Distribuzione (vedi sotto).

Lista di Distribuzione

Una lista di distribuzione può essere immaginata come un alias che reindirizza i messaggi ricevuti a molteplici indirizzi e-mail: questo significa che le e-mail inviate a una lista di distribuzione verranno inviate automaticamente a tutti gli indirizzi e-mail ad essa associati. Se avete presente il concetto di mailing-list, sappiate che la lista di distribuzione è esattamente questo. Per ciascuna lista è inoltre possibile definire chi ha l'autorizzazione ad inviare messaggi: hMailServer consente di impostarla come Public (chiunque, anche i non iscritti), Membership (soltanto gli iscritti) o Announcements (soltanto un singolo indirizzo e-mail autorizzato). In estrema sintesi, la modalità Public è generalmente indicata per mailing-list commerciali e/o di assistenza tecnica (sales, info, support, etc.), la modalità Announcements è pensata per comunicazioni one-way only in stile newsletter e la modalità Membership è adatta in tutti gli altri casi.

hMailServer.distribution.list

Abilitare i protocolli POP3 e/o IMAP

L'ultimo passaggio da effettuare è assicurarsi che i protocolli POP3 e/o IMAP siano correttamente abilitati. Aprite l'interfaccia di gestione di hMailServer ed espandete con un click del mouse la voce Protocols:

hmailserver.protocols

Assicuratevi che i protocolli che volete rendere disponibili per i vostri utenti siano attivi. Nel caso in cui vogliate attivare anche l'invio di messaggi mediante server SMTP potete avvantaggiarvi e abiliarlo in questa sede. Per maggiori informazioni sui protocolli POP3, IMAP e SMTP vi consiglio di leggere questo articolo tratto dalla documentazione ufficiale di hMailServer.

Abilitare il protocollo SMTP

Vediamo ora come configurare hMailServer anche per l'invio di messaggi di posta. Questi i passaggi da effettuare:

  • Abilitare il protocollo SMTP (se non lo avete già fatto)
  • Impostare le autorizzazioni di accesso

Aprite l'interfaccia di gestione di hMailServer e portatevi alla voce Protocols: assicuratevi che il protocollo SMTP sia abilitato.

hmailserver.protocols

Impostare le autorizzazioni di accesso

Quando si attiva un servizio SMTP è fondamentale impostare correttamente i permessi di accesso al servizio onde evitare che il proprio server cada preda di spam-bot o altri meccanismi automatici alla perenne ricerca di sistemi poco protetti mediante i quali veicolare e-mail potenzialmente inopportune.

Aprite il pannello di gestione di hMailServer e portatevi alla voce Advanced -> IP Ranges. Espandete la voce con un click del mouse e controllate le impostazioni relative agli indirizzi IP interni alla rete locale (localhost) o provenienti dall'esterno (internet). Oltre a impostare delle classi di IP specifiche potete anche abilitare o disabilitare i servizi POP3, IMAP e SMTP selettivamente per ciascuno di essi.

hmailserver.ipranges

Configurare le autorizzazioni di inoltro

Le quattro checkbox presenti nella sezione Allow deliveries from consentono di configurare le autorizzazioni di inoltro delle e-mail. In dettaglio:

  • Local to Local consentirà o meno l'invio di e-mail provenienti da e inviate a caselle di posta interne (ovvero gestite da/configurate su hMailServer).
  • Local to External consentirà o meno l'invio di e-mail provenienti da caselle di posta interne (vedi sopra) e inviate a caselle di posta esterne (ovvero qualsiasi altra casella non gestita dall'istanza hMailServer locale).
  • External to Local consentirà o meno l'invio di e-mail provenienti da caselle di posta esterne e inviate a caselle di posta interne.
  • External to External consentirà o meno l'invio di e-mail provenienti da e inviate a caselle di posta esterne.

Richiedere l'autenticazione SMTP

Similmente, le quattro checkbox presenti nella sezione Require SMTP authentication consentiranno di richiedere o meno la necessità di autenticazione per le quattro possibilità descritte nel paragrafo precedente.

Come possiamo vedere, hMailServer consente di configurare una diversa gestione dei permessi Allow deliveries fromRequire SMTP authentication per ciascun range di IP che andremo a definire: questa funzionalità si rivela particolarmente comoda in alcune situazioni, ad esempio quando si ha la necessità di configurare un server SMTP che consenta l'accesso non autenticato per l'utilizzo della funzione mail() di PHP: la quale, come molti sapranno, non consente di specificare credenziali di autorizzazione, problema che ho affrontato in un precedente articolo e rispetto al quale hMailServer, se opportunamente confiurato, rappresenta una possibile soluzione.

IMPORTANTE: per impostazione predefinita, hMailServer non richiede l'autenticazione SMTP per inviare posta ricevuta da un servizio che si presenta con indirizzo IP locale (localhost, 127.0.0.1), come si può vedere osservando la screenshot mostrata sopra. Per quanto riguarda i servizi che si collegano con un qualsiasi IP esterno, è solitamente buona norma disabilitare l'autenticazione nel caso in cui il destinatario sia una casella di posta interna (ovvero gestita da/configurate su hMailServer) così da consentire ai server SMTP esterni di inviare e-mail all'istanza locale: è invece fortemente consigliato - o per meglio dire doveroso - richiedere l'autenticazione per qualsiasi invio a caselle di posta esterne (local to external, external to external) così da impedire che il nostro server possa essere utilizzato da servizi di spam o script malevoli per veicolare messaggi potenzialmente indesiderati.

Conclusioni

Per il momento è tutto: la panoramica fornita dovrebbe consentirvi di configurare il servizio con tutte le sue funzionalità di base. Per qualsiasi altra necessità di configurazione suggerisco di fare riferimento all'ottima documentazione ufficiale.

 

 

About Ryan

IT Project Manager, Web Interface Architect e Lead Developer di numerosi siti e servizi web ad alto traffico in Italia e in Europa. Dal 2010 si occupa anche della progettazione di App e giochi per dispositivi Android, iOS e Mobile Phone per conto di numerose società italiane. Microsoft MVP for Development Technologies dal 2018.

View all posts by Ryan

One Comment on “hMailServer - Mail Server open-source per Windows con gestione POP3, SMTP, IMAP, AntiVirus/AntiSpam e altro”

  1. Pingback: Inviare E-Mail con PHP via SMTP - Mail, PHPMailer, SendMail 

Lascia un commento

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


The reCAPTCHA verification period has expired. Please reload the page.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.