Da un host nuovo al flusso di posta in produzione in 8 passi
Un mail server dipende più dalla sua rete che dal suo hardware: se la porta 25 è bloccata o manca il reverse DNS (PTR), i messaggi non vengono recapitati, indipendentemente dalla potenza della CPU. Questa guida accompagna, in un ordine rigoroso, dai controlli preliminari alla configurazione, al DKIM a doppia chiave, al TLS e all'onboarding mobile, fino al primo recapito verificato.
Come nextxch si avvia e arriva in produzione
nextxch riunisce ESMTP, IMAP4rev2, POP3, JMAP, Exchange ActiveSync, CalDAV/CardDAV, ManageSieve, SpamGuard, l'archivio GoBD WORM, l'Admin Cockpit (/admin/) e la Webmail PWA di nextxch (/mail/) in un unico binario memory-safe (~40-90 MB di RAM a riposo). Al primo avvio non viene scaricato nulla da GitHub e non sono necessari wrapper NSSM esterni, Redis, Rspamd o container webmail separati.
Prerequisiti di sistema & rete (checklist preliminare)
Spuntare tutti i 6 punti seguenti prima dell'installazione. Quattro di essi si controllano al di fuori del server, nel pannello di controllo dell'hosting o del DNS.
| Porta | Protocollo / servizio | Direzione | Requisito e indicazioni |
|---|---|---|---|
25 / TCP | ESMTP (MX server-to-server + STARTTLS/DANE) | In entrata e in uscita | Obbligatoria - Indispensabile per ricevere e recapitare la posta Internet. |
443 / TCP | HTTPS (/admin/, /mail/, JMAP, ActiveSync, DAV, MTA-STS) | In entrata (+ in uscita) | Obbligatoria - serve Webmail, Admin, Mobile Push, DAV, JMAP e ACME. |
465 / TCP | Submission SMTPS (Implicit TLS, RFC 8314) | In entrata | Obbligatoria - Porta di submission con TLS implicito preferita (RFC 8314). |
587 / TCP | SMTP Submission (STARTTLS) | In entrata | Obbligatoria - submission STARTTLS standard per Outlook, stampanti ed ERP. |
993 / TCP | IMAPS (IMAP4rev2 Implicit TLS) | In entrata | Obbligatoria - IMAP4rev2 crittografato con push IDLE senza polling. |
80 / TCP | HTTP (ACME HTTP-01 & Autoconfig) | In entrata | Consigliato (facoltativo se si usa TLS-ALPN-01 o un PFX del gateway). |
4190 / TCP | ManageSieve (STARTTLS) | In entrata | Facoltativo (l'editor Sieve visuale di Webmail funziona già tramite la 443). |
143 / TCP | IMAP (STARTTLS) | In entrata | Facoltativo (preferire la porta 993 con TLS implicito). |
995 / TCP | POP3S (TLS implicito) | In entrata | Facoltativa (solo se POP3 è attivato in Admin > Rete; disattivato per impostazione predefinita). |
110 / TCP | POP3 (STLS) | In entrata | Facoltativa (preferire la porta 995 con TLS implicito). |
| Dimensione dell'installazione | CPU | RAM | Disco & database consigliato |
|---|---|---|---|
| 1 - 250 caselle di posta | 2 vCPU | 1 - 2 GB | NVMe/SSD · SQLite WAL integrato + Zstandard (~40-90 MB di footprint del server). |
| 250 - 2.500 caselle di posta | 4 vCPU | 4 - 8 GB | NVMe + S3 ibrido facoltativo · PostgreSQL 18 o Microsoft SQL Server (2019-2025). |
| Cluster HA 2.500+ | 8+ vCPU | 16+ GB | Nodi Active-Active su PostgreSQL 18 o SQL Server Always On + S3 Object Lock. |
Scelta della piattaforma e del backend di storage
Ogni piattaforma offre esattamente lo stesso set di funzionalità. Scegliere il metodo di deployment e il backend SQL adatti al proprio team operativo.
| Piattaforma | Metodo | Ideale per |
|---|---|---|
| Windows Server 2019-2025 | .msi / install.ps1 | Servizio Windows SCM nativo senza Docker né NSSM; ideale insieme a Microsoft SQL Server o per migrazioni da hMailServer. |
| Linux (x86_64 & ARM64) | install.sh · .deb · systemd | Demone systemd snello non root su server Debian, Ubuntu LTS, RHEL/Rocky o ARM64. |
| Docker Compose | nextxch/server:1.0.0 | Stack di container riproducibili su host Linux, VM Proxmox, Synology, UGREEN e Unraid. |
| macOS & Kubernetes | launchd / Helm v3 | Server da ufficio Mac mini (launchd) o cluster Kubernetes active-active orizzontali. |
Il tutorial in 8 passaggi: dall'installazione alla prima e-mail di test verificata
Selezionare qui sotto la piattaforma di destinazione. Ciascuno degli 8 passi indica cosa fa, mostra il comando esatto, conferma il risultato atteso ed evidenzia l'errore più comune proprio nel punto in cui si verifica.
Installare il servizio & aprire le porte del firewall
Scarica il pacchetto di release, ne verifica il digest SHA-256 e registra il servizio in background e la directory dei dati persistente.
# PowerShell (Admin): Downloads .msi (v1.0.0), verifies SHA-256 & launches setup irm https://nextxch.com/install.ps1 | iex # Ensure Windows Defender Firewall permits inbound mail & HTTPS ports New-NetFirewallRule -DisplayName "nextxch" -Direction Inbound ` -Protocol TCP -LocalPort 25,80,443,465,587,993,4190 -Action Allow
# Debian / Ubuntu / RHEL / macOS: Verifies SHA-256 & registers systemd unit curl -fsSL https://nextxch.com/install.sh | sudo bash # If UFW is enabled, allow required mail & HTTPS ports: sudo ufw allow 25,80,443,465,587,993,4190/tcp
# Pulls SHA-256-verified nextxch/server:1.0.0 & writes docker-compose.yml curl -fsSL https://nextxch.com/install.sh | sudo bash -s -- \ --mode docker --domain firma.de --hostname mail.firma.de --admin admin@firma.de
Verificare lo stato del servizio & accedere a /admin/
Verificare nei log il corretto avvio dei listener e accedere all'Admin Cockpit con le credenziali di amministratore impostate durante l'installazione.
Get-Service nextxch # Open in browser: https://mail.firma.de/admin/ (or http://localhost/admin/)
sudo systemctl status nextxch sudo journalctl -u nextxch -n 30 --no-pager # Open in browser: https://mail.firma.de/admin/
docker compose ps docker compose logs --tail=30 nextxch # Open in browser: https://mail.firma.de/admin/
Configurare il dominio di posta e DKIM parallelo a doppia chiave
Apra Domini & routing -> Gestisci dominio in /admin/. nextxch crea automaticamente due coppie di chiavi DKIM parallele: RSA-2048 (selettore s2026) ed Ed25519 (selettore s2026ed).
Attivare il certificato TLS (ACME Let's Encrypt o PFX del gateway)
Aprire Security & Certificates -> TLS & ACME. Non appena mail.company.com si risolve nel proprio host, richiedere un certificato Let's Encrypt tramite HTTP-01 o TLS-ALPN-01 (porta 443), oppure caricare un certificato .pfx/.pem dal proprio pfSense/gateway SSL.
Pubblicare i record DNS ed eseguire la verifica DNS live
Copiare i record DNS calcolati dal DNS Advisor integrato (o esportare il file di zona BIND): MX, A/AAAA, SPF, entrambi i selettori DKIM (s2026 + s2026ed), DMARC, MTA-STS, TLS-RPT e, facoltativamente, DANE TLSA (3 1 1) e BIMI.
Rafforzare il server prima della produzione
Registrare una passkey (WebAuthn) o la 2FA TOTP sull'account amministratore, mantenere le soglie di SpamGuard a 4.5 / 9.0 con lo Smart Greylisting attivo e attivare l'archiviazione WORM GoBD sui domini commerciali.
Creare la prima casella di posta & collegare i dispositivi mobili in 30 secondi
Creare la prima casella di posta utente in Account e liste, accedere su https://mail.company.com/mail/ e fare clic su 'Configurazione dispositivo' per generare un codice QR o un link di onboarding con 1 clic sicuro per i messenger, con un profilo iOS/macOS firmato CMS o Exchange ActiveSync.
Confermare il recapito in entrata & in uscita tramite Live MX Tester & Message Trace
Esegua Diagnostica & log -> Outbound MX & DANE Tester verso gmail.com o un indirizzo esterno, quindi invii un'e-mail reale da /mail/ e risponda per verificare il flusso nei due sensi.
Funzionamento dietro pfSense / OPNsense, gateway SSL & reverse proxy
In caso di deployment dietro pfSense, OPNsense, Sophos o HAProxy, configurare queste tre impostazioni per una diagnostica accurata e la conservazione dell'IP reale del client:
| Scenario | Configurazione consigliata |
|---|---|
| Split-DNS / Hairpin-NAT | Configurare in Unbound un host override Split-DNS che punti mail.company.com all'IP LAN interno, oppure attivare Pure NAT Reflection sul gateway. |
| Protocollo PROXY di HAProxy | Attivare il protocollo PROXY v1/v2 limitato al CIDR del proxy attendibile, in modo che SPF e Auto-Ban vedano il vero IP remoto anziché l'IP del gateway. |
| Certificato del gateway | Sincronizzare il certificato .pfx/.pem rinnovato del gateway con nextxch per le porte 25/465/587/993; il Dynamic SNI ricarica a caldo i certificati aggiornati senza downtime. |
Risoluzione dei problemi per sintomo (dall'errore alla soluzione immediata)
Faccia clic qui sotto sul sintomo osservato oppure digiti parte del messaggio di errore nella casella di filtro rapido qui sopra:
Il controllo esterno delle porte segnala 'Blocked / Timeout' anche se il servizio è in esecuzione
TCP 25 / 465 / 993 Timeout
Il servizio non riesce a collegarsi a una porta all'avvio
Address already in use (:25 / :80 / :443)
La posta in uscita verso Gmail, Microsoft 365 o grandi ISP viene rifiutata
550-5.7.25 / 550-5.7.1 PTR missing
Il Live DNS Inspector non trova il record TXT DKIM o DMARC pubblicato
NXDOMAIN s2026._domainkey
Let's Encrypt ACME non riesce a emettere un certificato o il browser mostra un avviso TLS
ACME challenge failed
L'iPhone apre un link di onboarding WhatsApp / Teams senza avviare subito l'installazione del profilo in Impostazioni
iOS In-App WebView
Il container Docker si riavvia o non riesce a scrivere sul volume host montato
Access to path '/var/lib/nextxch' denied
Il client di posta non riesce ad accedere tramite IMAP o SMTP
535 Authentication failed / TLS required
Passi successivi: aggiornamenti in 10 secondi, backup e migrazione
Una volta confermato il flusso di posta in entrambe le direzioni, il server è pronto per la produzione. Tenere a portata di mano questi tre flussi di lavoro operativi:
# 1) In-place upgrade (preserves configuration, certificates & mailboxes): # Linux / macOS: curl -fsSL https://nextxch.com/install.sh | sudo bash -s -- --update # Windows PowerShell (Administrator): irm https://nextxch.com/install.ps1 | iex # 2) Backup scope (only 2 paths): # - Config file: appsettings.Production.json (including license token) # - Data dir: Storage:DataDirectory (SQLite WAL / blobs / TLS certs) # or pg_dump / SQL Server backup when running an external DB cluster
Risposte rapide prima del primo avvio
nextxch richiede NSSM o Docker Desktop su Windows Server?
No. A differenza dei server che su Windows richiedono wrapper di servizio NSSM, nextxch si registra in modo nativo presso il Service Control Manager (SCM) di Windows tramite il nostro installer .msi ufficiale, senza Docker Desktop, WSL2 o Hyper-V.
nextxch richiede l'accesso a Internet al primo avvio per scaricare la WebUI o le regole antispam?
No. L'intero Admin Cockpit (/admin/), la Webmail PWA di nextxch (/mail/), il motore SpamGuard e tutti i listener di protocollo sono contenuti nel pacchetto verificato con SHA-256, consentendo un avvio 100% offline/air-gapped.
Perché il reverse DNS (PTR) deve corrispondere prima di inviare la prima e-mail di prova?
I principali destinatari come Gmail, Microsoft 365 e gli ISP europei verificano che gli indirizzi IPv4 e IPv6 pubblici si risolvano tramite PTR nel nome host SMTP EHLO esatto (ad es. mail.company.com). La mancanza di record PTR IPv6 sugli host dual-stack è la causa n. 1 dei rifiuti 550-5.7.25.
Come funzionano gli aggiornamenti in-place quando il server è in produzione?
Eseguire curl -fsSL https://nextxch.com/install.sh | sudo bash -s -- --update su Linux/macOS oppure irm https://nextxch.com/install.ps1 | iex su Windows (o usare l'updater con 1 clic in /admin/). appsettings.Production.json, certificati TLS, chiavi DKIM e archivio della posta vengono preservati automaticamente.