Upgrading qmail
October 26, 2024 by Roberto Puzzanghera 536 comments
- Latest stable version 2024.10.26 (github)
- Releases
- Changelog
- Readme
For my convenience I moved the qmail
sources to my github space. Nonetheless, all information about qmail
and related programs will continue to be posted in this web space, and this pages remain the place to eventually seek support. From now on, instead of releasing a combined patch for qmail
, I'll release a package which is the result of the ancient netqmail-1.06
plus the patches and modifications listed below.
Changelog
WARNING: IF YOU ARE UPGRADING qmail
AND YOU ARE USING A VERSION BEFORE 2024.01.11, BE AWARE THAT dk-filter
HAS BEEN DROPPED, SO YOU HAVE TO RECONFIGURE DKIM AND MODIFY YOUR rc
FILE ACCORDINGLY.
- Oct 26, 2024
- qmail-remote.c patched to dinamically touch control/notlshosts/<fqdn> if control/notlshosts_auto contains any number greater than 0 in order to skip the TLS connection for remote servers with an obsolete TLS version. (tx Alexandre Fonceca) (commit)
- defined CHKUSER_DISABLE_VARIABLE "RELAYCLIENT" in chkuser_settings.h
- enabled CHKUSER_SENDER_NOCHECK_VARIABLE "RELAYCLIENT" in chkuser_settings.h
- fixed several compilation breaks/warnings on later gcc compilers (tx Pablo Murillo)
- invalid auth fix in qmail-smtpd.c's smtp_auth function (tx Alexandre Fonceca for the advice) (commit)
- qmail path determined dinamically in conf-policy
- added a patch to remove chkuser and the vpopmail dependency (other-patches dir) - Jun 8, 2024
- conf-channels: default number of channels increased to 4 (was 2). Now qmail offers 2 additional channels with respect to the 2 offered by default (local and remote). More info here
- maxrcpt: error code changed to 452 due to RFC 4.5.3.1 (was 553). If DISABLE_MAXRCPT is defined it skips the check, otherwise outgoing messages from mailing lists would be rejected. (commit) - May 16, 2024
- DKIM: Make the dkimsign binary _not_ derive the "d=" domain value from the Return-Path header (tx mpdude)
- Fixed -Wstringop-overflow on qmail-start.c line 128 (gcc-13.2) (commit)
- Fixed -Wincompatible-pointer-types compilation warnings onsubstdio.h (commit)
- Big Concurrency fix patch removed, as it is incompatible with the above change.
- Create a trigger to decide if your qmail-smtpd instance should respect badmailfrom regex or not. This could be very handling if you decide to have very strict rules for your qmail-smtpd that you don´t want to be applied to qmail-submission. Usage: add export DISABLE_BADMAILFROM=1 to run file service (tx brdelphus) - Feb 12, 2024
- DKIM patch upgraded to v. 1.48
* fixed minor bug using filterargs for local deliveries (commit)
- Fixed several compilation warnings (commit)
- Fixed incompatible redeclaration of library function 'log2' in qmail-send.c qsutil.c as showed by notqmail friends here
- removed FILES, shar target from Makefile - Feb 6, 2024
- DKIM patch upgraded to v. 1.47
* fixed a bug which was preventing filterargs' wildcards to work properly on sender domain - Jan 20, 2024 (diff here)
liberal-lf: bare LF are no longer allowed by default due to smuggling vulnerability CVE-2023-51765. Bare LF can be allowed by defining ALLOW_BARELF in the tcprules or in the run file. - Jan 15, 2024
TLS patch by F. Vermeulen upgraded to version 20231230 (more info at https://inoa.net/qmail-tls/ tx Greg Bell for the patch)
- support to openssl 3.0.11 - Jan 11, 2024
- dkim patch upgraded to version 1.46
* dk-filter.sh has been dropped. If signing at qmail-remote level, before upgrading, you have to review the configuration.
- The variables USE_FROM, USE_SENDER and DKIMDOMAIN have been dropped
- when signing at qmail-remote level qmail-dkim now has to be called directly by spawn-filter in the rc file. man spawn-filter for more info
- In case of bounces the signature will be automatically based on the from: field. This will solve issues of DMARC reject by google in case of sieve/vacation bounces.
- In case of ordinary bounces (mailbox not found, for instance) the bounce domain will be taken from control/bouncehost and, if doesn't exist, from control/me - Dec 9, 2023
- sources moved to github.
Installing and configuring vpopmail
October 19, 2024 by Roberto Puzzanghera 139 comments
- Inter7's original page
vpopmail
version: 5.6.3 (merged with my combined patch v. 2023.11.11)- Download
- My github on sagredo-dev/vpopmail (post here pull requests concerning my patches)
- More info here
- README.vdelivermail
Vpopmail provides an easy way to manage virtual email domains and non /etc/passwd email accounts on your mail servers.
Update as of December 11, 2023
Thanks to TLK Games guys at https://github.com/brunonymous/vpopmail we have a new vpopmail-5.6.0 version. They did a huge job merging together the old vpopmail-5.4.33 version with many patches that can be found around the net, my combo included. More importantly, they polished and corrected the code and added several features that you can see in the changelog.
From now on, I'll no longer release a new patch but I'll pull a request there, where you can get the released package.
For any request concerning my patches, this page remains the place where to find more information and ask for support. If you want to contribute to the code of my patches, you can send it here in a comment or post a PR in my github space (we don't want to bother our french friends with issues concerning my patch, ok?).
Changelog
- Oct 19, 2024 (v.5.6.3)
- bug fixed: passwords with length > 8 were denied if sha-512 was disabled - Oct 14, 2024 (v. 5.6.2)
- fixed a configure break where a trivial C test program exits on error with gcc-14.1 due to missing headers
- vusaged/domain.c: fixed -Wimplicit-function-declaration compilation warning
- vmysql.h: dropped the multicolumn PRIMARY KEY in valias table to allow multiple forwards for a given alias.
In case one already has the valias table defined, this is the sql query for the upgrade:
ALTER TABLE `vpopmail`.`valias` DROP PRIMARY KEY, ADD INDEX (`alias`, `domain`, `valias_type`) USING BTREE;
ALTER TABLE `vpopmail`.`valias` ADD `id` INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`id`); - Jun 7, 2024
- the header files oflibev
are now installed in /usr/local/include/libev (was /usr/local/include) to avoid conflicts withlibevent
.vusaged configure
command was adjusted accordingly. - Jan 11, 2024
- vmysql.c: allow the insertion of a second valias row with the same alias/domain when vpopmail is configured with --enable-defaultdelivery and --enable-valias
- bug fix in mysql.h: wrong definition of VALIAS_TABLE_LAYOUT as it was looking for DEFAULTDELIVERY definition instead of DEFAULT_DELIVERY. This bug was preventing the correct auto creation of the valias table in MySQL
- configure.ac: solved all autoconf warnings - Dec 11, 2023
- patch merged with github/brunonymous
- vpopmail-5.6.0 released (read the upgrading notes) - Nov 11, 2023
- defaultdelivery patch: vmakedotqmail won't create users' .qmail if control/defaultdelivery already has vdelivermail. - Oct 23, 2023
- defaultdelivery patch: .qmail file won't be created if control/defaultdelivery already has vdelivermail
- Sep 5, 2023
- changed configuration option--enable-logging=e
(wasp
). Now failed attempts will be logged with no password shown. - Aug 27, 2023
- new combined patch. More info here
* The logic of the defaultdelivery patch/feature has been revised. If configured with--enable-defauldelivery vpopmail
will save control/defauldelivery in the user's .qmail andvdelivermail
LDA in the domain's .qmail-default file. This will achieve multiple benefits: you haveqmail
forwards andsieve
together andvalias
available. Thevalias
table schema was changed as well.
daemontools
October 14, 2024 by Roberto Puzzanghera 36 comments
- More info here: http://cr.yp.to/daemontools.html
- Original author: D.J. Bernstein
- github
- version: 0.78.3
daemontools
is a collection of tools for managingUNIX
services. It monitorsqmail
services and saves error messages to one or more logs.
Changelog
- Oct 14, 2024 (version 0.78.3)
- all package/ scripts now run the bash shell
- package/run script will recognize if we are in an lxc container to skip inittab configuration
- package/run.rclocal will find both /etc/rc.local /etc/rc.d/rc.local
- daemontools-0.78.2 directory renamed to daemontools - Oct 9, 2024
- added -ltr to conf-ld to restore compatibility with systems with glibc prior to v. 2.17 like RHEL6/CentOS6, where the librt.so library is not linked - Oct 4, 2024
- version 0.78.1: added package/compile which was missing again! (tx Bai Borko) - Sep 6, 2024
- fixed a .gitignore issue which was preventing the package/compile script upload (thanks Ivelin Topalov) - Jul 29, 2024 (version 0.78)
- multilog prints a readable datetime if used with "d" flag, it prints timestamps if used in the usual way with the "t" flag (80f2133)
- fixed several compilation warnings and/or breaks on gcc-14.1 - Dec 9, 2023
-moved my patched daemontools to github and named 0.77 the new version
-clear service moved to qmail/supervise/clear
netqmail-1.06 - basic setup
September 10, 2024 by Roberto Puzzanghera 34 comments
Changelog
- Sep 10, 2024: the original
netqmail
sources are now compatible with latestgcc
compilers.
Roundcube webmail
September 7, 2024 by Roberto Puzzanghera 16 comments
May 19, 2024: Roundcube webmail 1.6.7 security fix. It is sufficient to update Roundcube to the latest version.
- Info: https://roundcube.net
- Version: 1.6.9
Roundcube is a full featured webmail with a nice interface.
Changelog
- Sep 7, 2024
RC update to v. 1.6.9 - May 19, 2024
RC update to v. 1.6.7 (security fix) - Gen 21, 2024
RC upgraded to v. 1.6.6
-new $config['imap_host'] variable
-all my SMTP config options were stripped from my configuration file and I had to restore them - Jan 3, 2021
disabled the SMTP authentication when sending messages via RC. SMTP port changed to 25.
Read the release note at https://github.com/roundcube/roundcubemail/blob/master/CHANGELOG.md for more info.
qmailadmin
September 7, 2024 by Roberto Puzzanghera 121 comments
qmailAdmin is a free software package that provides a web interface for managing a qmail system with virtual domains. It provides admin for adding/deleting users, Aliases, Forwards, Mailing lists and Autoresponders.
As you can see, for convenience I moved the qmailadmin
sources to my github
space. Nonetheless, all information about qmailadmin
will continue to be posted here, and this page remains the place to seek support if needed.
This qmailadmin
puts togheter the original Inter7's 1.2.16
version with the following features (updated to 2023.08.27 old patch version):
- qmailadmin-skin, a patch that I created during covid-19 spare time, provides a new responsive skin to the control panel. It modifies everything under the html dir and many .c files in order to adjust the
html
embedded into the source files. Added a style sheet in the "images" folder and a couple of png files for theqmail
logo. It will be much easier to modify theqmailadmin
's skin from now on. - A patch to call
cracklib
in order to check for the password strenght. This should avoid unsafe accounts created by domain administrators such as "test 123456". - A nice patch (thanks to Tony, original author unknown) which gets
qmailadmin
to have authentication failures logged. This makes possible to ban malicious IPs viafail2ban
. It is required to create the log file /var/log/qma-auth.log initially and assign write priviledges toapache
. - ezmlm-idx 7 compatibility patch (author unknown), which restores the compatibility with
ezmlm-idx-7
(thanks to J.D. Trolinger for the advice). - a fix to the catchall account (thanks to Luca Franceschini).
- another fix to autorespond.c to correct the way the
.qmail
files are modified qmail-autoresponder
support (thanks Nathanaël Semhoun)
autorespond
July 18, 2024 by Roberto Puzzanghera 22 comments
- Author: Inter7
- github repo
- Latest version: 2.0.7
- Changelog
autorespond
is used for vacation messages. It's required by qmailadmin
.
Installing Mailman3 in a qmail + vpopmail server
June 8, 2024 by Roberto Puzzanghera 0 comments
Mailman is free software for managing electronic mail discussion and e-newsletter lists. Mailman is integrated with the web, making it easy for users to manage their accounts and for list owners to administer their lists. Mailman supports built-in archiving, automatic bounce processing, content filtering, digest delivery, spam filters, and more.
Mailman is free software, distributed under the GNU General Public License, and written in the Python programming language.
Index
- Preparing the virtual environment
- Installing
Mailman core
- Set up
Mailman Web
UI
- Log rotation
- Adding domains
- Known issues