The DynDN.eS Blog

About DynDN.eS, eQmail, Gentoo & some other network stuff

User Tools

Site Tools


eQmail 1.08

Whenever I have to compile qmail from source, I was struggling to search, download and apply needed patches. So I decided to move forward to eQmail as a new version of (net)qmail source code. The new version should have the needed patches included (e.g. the  exit.h  issue), provide smtp and remote authentication with TLS, have some helpful patches (e.g. for better smtp logging) and last but not least the qmail-spp patch for smtp plugins. Beside this functionality it could be a new base to adapt and apply further patches.

The decision which patches to use was done along my needs. For a better understanding - a typical qmail environment of me uses spamdyke, courier-imap, cmd5checkpw, procmail and clamav. There is a mail relay for incoming mails before (always) and quite often a mail relay where outgoing mails will be forwarded to. Authentication is implemented and needed always. As qmail can handle virtual domains/users there was never seen a need for e.g. vpopmail by me, as well as I have some scripts which can handle qmail and courier-imap users together. I did exclude deliberately some other additional software packages from my environments too - won't refer to them here.

qmail Today

The last release of netqmail was in 2007. For some people it seems that qmail is dead because of this. On the other side are active developed packages, mainly spamdyke moves the usage of qmail to an up-to-date level. Beside to mention that smtp authentication including TLS can be done by spamdyke for qmail, it is not the place to talk about spamdyke here. Nevertheless qmail still works great as MTA and patches provides functionality of newer RfC's. Support of IPv6 can be patched too, but I prefer to use IPv6 tunneling in such cases. And if you have used qmail really, then no other MTA should be satisfactory perhaps.

Name and versioning

The e should stand for extended. Otherwise it could be a reminiscence to Gentoo tools ;-) also. Related with the new name, the version number should show that the base was netqmail-1.06, but it is not netqmail-1.07. I don't expect that netqmail will be released in a new version, nevertheless the 1.08 should show the - more or less - independent progress.

The Patches

The existing patches for (net)qmail are some times incompatible together as well there are different patches for one solution. It is mentioned to use the really needed patches only, because of possible bugs. Starting over from netqmail-1.06 I applied the following groups of patches:

Base Patches

These patches slightly changes things to - let's say this way - make qmail work/compile with modern software:

  • 1.06-exit.patch
  • 1.06-readwrite.patch
  • 1.03-qmail.patch
  • 1.06-fbsd-utmpx.patch

Authentication

The tls-smtpauth patch, combined by Bill Shupp and mentioned here by Russel Nelson, and a bugfix (VU#555316) of the tls implementation:

For remote authentication I used the following one, provided by “sonni” at the Gentoo buglists:

All these patches until here are available and taken from Gentoo portage and other Gentoo resources.

Should-Have Patches

The next patches make things smoother or prevent trouble:

  • any-to-cname.patch (by Jonathan de Boyne Pollard, explanation see here)
  • qmail-badmailfrom-wildcard.patch (by Tom Clegg, see here)         adjusted
  • big-todo.103.patch
  • qmail-date-localtime.patch
  • qmail-spp-smtpauth-tls-20060105.diff (see here)        Create the file  smtpplugins  during installation!!!
  • smtpauthlog.patch (by Tom Clegg, see here) /* 2) */        adjusted
  • qmail-1.03-domainbindings-1.2.patch (see here, consult the man page of how to use it)        adjusted
  • rfc2821-combined-20150305.patch 3)         adjusted
  • logging-4.patch by Kyle Wheeler /* Added code for hunks 2-4 by hand! */         adjusted

/* ToDo: (?)

  • qmail-1.03-mfcheck.3.patch by jms (not applied yet!)
  • ext-todo-20030105.patch        needs adjustment

*/

Epilog

Thanks to all who did work at qmail source code and yield good stuff. I see them all mostly at a higher level of (net)(q)mail as me ;-). Changes made by me are documented in the package.

I don't plan to extend the package - at least at the moment. The qmail-spp patch gives an easy way to implement additional functionality without patching everything. By oneself the source code of qmail-smtpd.c was grown from 11351 to 32578 bytes.

Download latest: eqmail-1.08.1 (md5sum, sha256sum)

eQmail will be discussed on the openqmail mailing list.

1)
There are 2 patches on the side, an initial one by author “sonni” and an another one by author “dio”. I do not agree to what was stated by dio in most cases, especially that the authenticated user have to be the same as in “MAIL FROM:”. It could be, but it haven't to be.
2)
this does not the same as the qmail-spp “authlogger” plugin, but similar
3)
combines patch-qmail-1.03-rfc2821.diff and smtpd-502-to-500.patch

Comments

Hi,

Did you ever look at the combined patch set from John Simpson (https://qmail.jms1.net/)?

The patch is available at: https://qmail.jms1.net/patches/combined.shtml For an overview of patches included: https://qmail.jms1.net/patches/combined-details.shtml

Looking forward to hearing from you.

Regards, Mike

1 |
Mike
| 2015/06/15 14:04 | reply

@Mike: Sure, but for some reasons I decided not to use it. One is that qmail-spp plugins makes it quite easier IMHO to enable/disable/extend functionality - without do re-patch, re-compile and re-install. I am working on more documentation of eqmail, which will explain the background why I do the things like I do. Regards Kai

2 |
Kai Peter
| 2015/06/16 08:23 | reply