qmail - basic setup
31 agosto 2026 by Roberto Puzzanghera 30 commenti
Changelog
- Aug 31, 2026
- fixed aqmail-queueissue onOpenBSD - 25 giugno 2026
- disponibile il ramo netqmail per utenti OpenBSD - 19 agosto 2025
- netqmail-1.07.1 ora compila con gcc 15.3 - 10 febbraio 2025
- i sorgenti dinetqmailsono ora compatibili con le nuove versioni digcceclang.
- rinominati comenetqmail-1.07i vecchi sorgenti di netqmail
QmailAdmin
29 agosto 2026 by Roberto Puzzanghera 5 commenti
qmailAdmin è un software libero che fornisce un'interfaccia web per gestire sistemi qmail con domini virtuali basati su vpopmail. Fornisce amministrazione per la creazione/cancellazione di utenti, alias, forward, mailing list e autoesponder.
Changelog
- Aug 29, 2026
- Bug fix: avoided to add translations from 400 to 450, as they are reserved strings for autoresponder's headers in #9. Thanks to ueli for spotting the bug. - Nov 28, 2025 (v1.2.27)
- Solved a compilation break on mailinglist.c whenonchangeis enabled in vpopmail a6395a9
---with-auth-logbecomes--with-auth-logdire6bdd48
- DroppedVPOPMAIL_DEFS_Hdef in template.c 658eaa9
- Revised the definition ofPACKAGEandVERSIONmacros in several.cfiles 18abb99 bff23be
- Functionsfile_exists()andstr_replace()renamed tofile_exists2()andstr_replace2()on util.c because they are already defined invpopmailbff23be
- Fixed quick search button functionality (wasn't working well) bff23be
-qmailadminnow requiresvpopmail-5.6.11a640c59
- Solved undefinedEZMLDIRand changing--enable-auth-logto--enable-auth-logdirin #5
- Dropped a lot ofbrtags in lang files, fixed accents in italian language in #6
- Dropped unusued--enable-helpfeature inconfigurein #7
-mailinglist.c: ifMySQLsupport is enabledmysql:localhostis the default host in #8 - Nov 8, 2025 (v1.2.26)
- Improved the handling of program exit because of wrong configuration. This should avoid the unpleasant "blank screen" situation in some cases.
* Configure program is now able to require a minimumvpopmailversion 3846a52
* Upgrade in auth-logging feature: added configurable auth log path via--with-auth-log=DIR(default ~vpopmail/log). Log file now written undervpopmailprivileges instead ofapache. 59e234d 04e2bf9 0c75b47 5f768b1
* Added verbosity to the "File error" event #4
Installazione di Dovecot e sieve su qmail + vpopmail
28 agosto 2026 by Roberto Puzzanghera 7 commenti
Changelog
- Aug 28, 2026
- dovecot upgraded to v2.4.5
- the new version hasluaas a dependency. Added--without-luaatconfigurecommand - Feb 25, 2026
- Added Server Name Indication (SNI) settings in sni.conf.template, imported from local.conf commit
-userdbiterate query nor orders by domain and username commit
- 15-mailboxes.conf:fts_autoindex = noadded to Trash and Junk folders commit
- 10-auth.conf:+character added toauth_username_charscommit - Nov 24, 2025
- dropped 'enforce = no' from 90-quota.conf to enforce quota limits (commit) - Nov 22, 2025
- quota driver switched to 'count' (commit). 'count' is the recommended way of calculating quota on recent Dovecot installations. - Mar 15, 2025 (config version 2.4.0.1 diff)
- Added quota warnings feature. Improved quota configuration in 90-quota.conf (more info here)
- Configured auth-master.conf.ext and auth-deny.conf.ext. To be included from local.conf - Mar 9, 2025
- fixed quota calculation in sql queries (tx Hakan Cakiroglu) - Feb 22, 2025
- Bug fix in 90-sieve.conf: global script to move spam into Junk now working
- Bug fix in move-spam.sieve: erroneously matches "YES" if "BAYES" is in the header - Feb 15, 2025
- added support forvpopmailconfigured with--disable-many-domains
- 90-sieve.conf: global script move-spam.sieve called correctly - Jan 29, 2025
- dovecot upgraded to v 2.4.0. Old configuration files are not valid anymore and you have to install dovecot from scratch. - Nov 15, 2024
- added a postlogin script to update the vpopmail.lastauth SQL table on login (see 10-master.conf, thanks kengheng) - Dec 29, 2023
default_pass_scheme = SHA512-CRYPT (was MD5-CRYPT) in dovecot-sql.conf.ext, as vpopmail-5.6.x has now SHA512-CRYPT password by default
Impostare il firewall con Fail2Ban
16 agosto 2026 by Roberto Puzzanghera 0 commenti
- Versione: 1.1.1
- Maggiori informazioni qui
- Howto (wiki)
- Manuale
Fail2ban ispeziona i log file (ad es. /var/log/apache/error_log) e banna IPs che mostrano un comportamento sospetto -- troppe password sbagliate, tentativi di exploits, etc. Generalmente Fail2Ban è quindi usato per aggiornare le regole del firewall al fine di rigettare gli indirizzi IP durante un intervallo di tempo settabile, benchè ogni altra azione (come l'invio di una mail di notifica) può anche altresì essere impostata. Tra le altre cose Fail2Ban mette a disposizione dei filtri per diversi servizi come apache, courier, ssh, etc.
Mostrerò brevemente come installare e configurare fail2ban per rigettare le connessioni di IP sospetti, specialmente quelli riguardanti la patch qmail-dnsrbl. Ciò evita di essere bannati noi stessi da spamhaus, che è gratuito solo fino a 100.000 query al giorno.
fail2ban richiede che si abbia un firewall come nftables o iptables attivo.
Changelog
- Aug 16, 2026
- Fail2Ban upgraded to v. 1.1.1 (changelog) - Nov 8, 2025
- qmailadmin log file is now /home/vpopmail/log/qmailadmin-auth.log - Mar 14, 2025
- dovecot filter updated for dovecot 2.4
Roundcube webmail
10 agosto 2026 by Roberto Puzzanghera 4 commenti
- Info: https://roundcube.net
- Versione: 1.7.3
Roundcube è una webmail avanzata con una bella interfaccia grafica.

Changelog
- Aug 10, 2026
- version 1.7.3 - Mar 9, 2025
added$config['quota_zero_as_unlimited'] = true;to show quota unlimited instead of unknown for accounts with unlimited quota
Installare un certificato Let's Encrypt per i server qmail e dovecot
6 agosto 2026 by Roberto Puzzanghera 9 commenti
Changelog
- 25 luglio 2026 (v. 4.0) Script hook e documentazione sottostante completamente revisionati.
- Aggiunto un nuovo script wrapperdehydrated-renewper eseguire il rinnovo del certificato e la sincronizzazione del servizio per SNI solo quando uno o più certificati sono effettivamente cambiati.
- Introdotto un meccanismo di flag di modifica (dehydrated.changed) per evitare ricaricamenti e riavvii non necessari del servizio se un certificato è stato effettivamente distribuito.
- Consolidate le operazioni post-rinnovo nella nuova funzionecert_sync(),fornendo un unico punto di ingresso per la sincronizzazione della configurazione dei certificati di qmail, Dovecot e Apache dopo i rinnovi riusciti. La stessa funzionecert_sync()può essere chiamata tramite uno script autonomo, che non coinvolge l'esecuzione di dehydrated. Ridotte le interruzioni non necessarie del servizio eseguendo la sincronizzazione una volta per ogni ciclo di rinnovo anziché una volta per ogni certificato rinnovato.
- Il certificato qmail viene creato solo se è impostatoMAKE_MAIL_CERTS=1.SeMAKE_MAIL_CERTS=0,lo script hook distribuisce solo i certificati (da utilizzare per il server web).
- Le funzionalità Server Name Indication (SNI) per qmail e dovecot possono essere disabilitate impostandoENABLE_SNI=0(impostazione predefinita).
- Le vociServerNameeServerAliasperApachee i domini SNI possono essere impostate facoltativamente conENABLE_APACHE_SNI_CONF=1.
To enable HTTPS on your website, you need to get a certificate (a type of file) from a Certificate Authority (CA). Let’s Encrypt is a CA. In order to get a certificate for your website’s domain from Let’s Encrypt, you have to demonstrate control over the domain. With Let’s Encrypt, you do this using software that uses the ACME protocol which typically runs on your web host.
clamav-unofficial-sigs
6 luglio 2026 by Roberto Puzzanghera 0 commenti
- Maggiori informazioni qui
- Versione: 8.0.0
clamav-unofficial-sigs fornisce un modo semplice di scaricare, testare e aggiornare database verificati di terze parti forniti da Sanesecurity, FOXHOLE, OITC, Scamnailer, BOFHLAND, CRDF, Porcupine, Securiteinfo, MalwarePatrol, Yara-Rules Project, urlhaus, etc. Lo script genera e installa anche cron, logrotate, e i file man.
Aggiornamento
L'aggiornamento alla versione major 8.0.0 a partire dalla versione 7.x semplice:
clamav-unofficial-sigs.sh --upgrade clamav-unofficial-sigs.sh --force
Controllare il file log /var/log/clamav-unofficial-sigs/clamav-unofficial-sigs.log alla fine.
Aggiornare qmail
3 luglio 2026 by Roberto Puzzanghera 18 commenti
- Latest version 2026.04.07 (github)
- Changelog
- Readme
Call for testers
Ho appena tirato su una modifica a tutto il codice di base, mirata a rendere il codice di qmail compatibile con le specifiche C23 e i gli ultimi compilatori GCC e Clang. Sul mio server di produzione funziona senza alcun problema da alcune settimane. La compilazione è stata testatta su linux, freebsd, openbsd, netbsd e con i compilatori GCC fino alla versione 15.2 e Clang fino alla versione 19.1.7. Trattandosi di una modifica importante, prima del rilascio definitivo, chiederei a chi ne avesse la possibilità di collaborare al testing scaicando l'ultima versione come segue
git clone https://github.com/sagredo-dev/qmail.git
Changelog
- Apr 7, 2026
- (security) Remote Code Execution via Shell Injection in qmail-remote TLS Error Handler in #42 (tx Diep Pham) - Apr 2, 2026
- qmail-remote auth improvements by pierluigi in #39
- Fixed DKIM ed25519-sha256 signing and verification to conform to RFC8463 by @agerstla in #40
- Updated qmail-qfilter to support filters defined in control/qfilters by @agerstla in #41 - Feb 25, 2026
- Improved DKIM status handling by @agerstla in #35
- Ported over DKIM_BAD_IDENTITY support from Indimail (tx Manvendra Bhangui and Andreas Gerstlauer 1299b55)
- SNI support for qmail-smtpd by @agerstla in #37
- Added qmail-qfilter by @agerstla in #38 - Feb 3, 2026
- Bug fix for verifying multiple DKIM signatures (second one always failed due to a DNS lookup bug). tx Andreas Gerstlaurer #31
- config-all.sh upgrade #33
* config-all.sh: moreipme is now populated with IPs in separate lines
* config-all.sh: rsa dh keys can be created even if the certificate creation is skipped
* config-all requires to accept overwriting with y/N/a=all options - Jan 8, 2026
- bug fixed in helodnscheck: it allowed domains with only one dot #30 - Jan 5, 2026
- helodnscheck.cpp: PCRE dependency avoided, to make happy Debian 13 d987ec4
- config-all now grabs the correct network interface c60d3fa
- config-all will now prompt for 1024/2048 key length for DKIM c842cea
- Fixed typo in qmailctl 3f1ea75
- Makefile: Fixed incorrect rule syntax for 'make cert' 80222cc - Sep 8, 2025
- Fixes in SPP handling and support for [pass] plugins after RCPT accept. Support for RBLRESULT environment variable and RBL ignore ('=') option. (tx Andreas Gerstlauer)
- Added -std=gnu17 to conf-cc, fixed some other issues and now it compiles on gcc-15.2 in #28
- scripts/qmail-pop3d and qmail/pop3sd: ports changed to 110 and 995
- Received: email header now hides the sender's hostname when the sender is RELAYCLIENT or is authenticated. 785e84b - Apr 30, 2025
,
qmailctlqmHandle,queue_repairand all scripts installed in QMAIL/bin and not in /usr/local/bin byconfig-all.sh - Apr 25, 2025
- added a configuration script config-all, which configure and installs the control files (as per the original config-fast script), aliases, SRS (uses control/me as the srs_domain), log dirs in /var/log/qmail, tcprules (basic, just to make initial tests), supervise scripts,qmailctlscript, DKIM control/filterargs and control/domainkeys dir, SURBL,smtpplugins,helodnscheckspp plugin,svtools,qmHandle,queue-repair, SSL key file (optional).
Consider this feature as "testing" - Feb 11, 2025
- Several adjustments to get freeBSD and netBSD compatibility. More info in the commit history. Hints/comments are welcome.
- freeBSD users have to erase the very 1st line of the file "conf-lib", as libresolv.so in not needed on freeBSD.
- Dropped files install-big.c, idedit.c and BIN.* files.
- Dropped files byte_diff.c, str_cpy.c, str_diff.c, str_diffn.c and str_len.c, which break compilation on clang and can be replaced by the functions shipped by the compiler (tx notqmail).
- Old documentation moved to the "doc" dir. install.c and hier.c modified accordingly
- conf-cc and conf-ld now have -L/usr/local/lib and -I/usr/local/include to look for srs2 library
- conf-cc and conf-ld now have -L/usr/pkg/lib and -I/usr/pkg/include to satisfy netBSD
- vpopmail-dir.sh: minor correction to vpopmail dir existence check
- srs.c: #include <srs2.h> now without path
Server Name Indication (SNI) per qmail e dovecot
18 marzo 2026 by Roberto Puzzanghera 0 commenti
Server Name Indication (SNI) è una estensione del protocollo TLS che consente a un server di presentare differenti certificati a seconda dell'hostname richiesto dal client durante il saluto TLS.
In un ambiente email moderno, molti domini condividono uno stesso indirizzo IP per i servizi SMTP, IMAP, POP3 e submission. Senza SNI, un amministratore di un server email può presentare un solo certificato per ogni socket disponibile, cosa che obbliga l'aministratore ad affidarsi a certificati multi-dominio (SAN) o a certificati con wildcard. Questo approccio aumenta i problemi operativi tra gli utenti finali novelli, che spesso non sono in grado di usare la configurazione automatica del client per configurare correttamente le loro mailbox.
L'abilitazione di SNI nei serivizi mail consente al server di presentare il certificato appropriato basato sull'hostname richiesto dal client, contenuto nel suo indirizzo email.
La funzionalità SNI per la mia distribuzione qmail è stata aggiunta da Andreas Gerstlauer (commit qui e qui), che vorrei ringraziare.
ClamAV
4 marzo 2026 by Roberto Puzzanghera 2 commenti
- Info: http://www.clamav.net
- Versione usata: 1.5.2
Clam AntiVirus is an open source (GPL) anti-virus toolkit for UNIX, designed especially for e-mail scanning on mail gateways.
Changelog
- Mar 4, 2026
- clamav upgraded to v 1.5.2 - Oct 11, 2025
- clamav upgraded to v 1.5.0. A recent version of rust is needed (successfully using 1.88 here). Just reinstall as explained below. No particular change is needed in the config files.







