hMailServer on Linux: what you get and what you do not
-
Since 6.3.0 the same source tree builds, installs and delivers mail on x86-64 and AArch64 Linux, as a systemd service, from a
.deb, an.rpmor an Arch PKGBUILD. That is why the release is numbered 6.3 and not 6.2.29. Read §35.1 before you install anything. Finding out about a missing capability after the mailboxes are populated is the wrong order.What crossed
The SMTP, POP3 and IMAP engines, delivery, routing, rules, anti-spam, anti-virus, ACME, the backup manager, the REST API, the Control Deck and the self-service portal. The on-disk message format is unchanged: one directory per domain and per mailbox, one file per message. The database schema is the same version the Windows build of the same release needs.
The packages
A
.debfor Debian, Ubuntu and derivatives. An.rpmfor Fedora, RHEL and derivatives, which openSUSE also consumes, though not separately exercised in CI. Arch is a PKGBUILD in the tree, built withmakepkg -sifrom the git tag. Both architectures are built natively in CI. Nothing else is packaged.The AppImage is not for running mail. It runs as whoever started it, with no
hmailserveruser, no unit and none of the systemd hardening, it puts its store under the invoking user's home directory, and it cannot bind port 25. Use it to see the thing work on a laptop. §35.2.Where things live
Configuration is
/etc/hmailserver/hMailServer.iniat0640 root:hmailserver. The store is/var/lib/hmailserver, the logs/var/log/hmailserver, the unit/usr/lib/systemd/system/hmailserver.service. The service runs ashmailserver:hmailserverand never as root. Full table: §35.6.The backends are PostgreSQL through
libpq, a link-time dependency, and MySQL or MariaDB through a client loaded withdlopenat run time, which nothing pulls in for you. SQL Server and SQL Server Compact are refused by name, so an INI carried across from Windows is repointed or it does not start.The gaps, stated plainly
- No Control Panel and no COM API. Both are Windows-only and are not compiled here. Every third-party COM script stops at that boundary.
- No event scripts. There is no script engine, and a non-empty script file is reported as uncompilable.
- Domain properties were not writable when Linux arrived, and are now. At 6.3.0 per-domain DKIM, per-domain size limits and the domain signature were readable over REST and not writable. 6.3.3 added nine more domain fields to
PUT /api/v1/domains/{domain}and full domain editing to the Control Deck. Of the 330 properties the Windows Control Panel writes, 328 are writable over REST and 322 reachable from a Deck view; the two exceptions are groups and their members. The same gap takes per-domain size limits, the domain signature and a per-domain relay host with it. - No self-update. The update checker names the package your machine would install, and the apply step refuses. You upgrade with apt, dnf or pacman.
- No tested path from Windows. The schema and the store format are shared, so the pieces are there. Nobody has run a Windows installation onto Linux and verified the result. §35.14 says what is known.
Administration is therefore the Control Deck at
/on the REST listener, and the REST API behind it. §35.10 covers the daily jobs. -
C chris pinned this topic
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login