hMailServer by Progressive Robot

Latest release · 6.3.8

Download hMailServer 6.3.8

The free, open-source mail server for Windows and Linux, maintained by Progressive Robot. Pick a version, pick your platform. Every package in 6.3.8 is signed and checksummed, and the release ships a software bill of materials and build provenance. Releases 6.2.19 to 6.3.3 and 6.3.5 to 6.3.8 carry Sigstore signatures; earlier ones are listed as they were published.

  • 6.3.8Sigstore-signed 2 November 2026
  • Windows + Linuxx86-64 and AArch64
  • AGPL-3.0free & open source

Latest release

hMailServer 6.3.8

Pick your platform. Each package shows its size and a shortened SHA-256; the full checksums and signatures are in the verification table below.

Windows

Windows 10 (version 1607 or later) and Windows 11, or Windows Server 2016 and newer; 64-bit only. The x64 installer is the one for an x64 server; the ARM64 installer is a preview for Windows on ARM, cross-compiled and never yet run on ARM64 hardware, and a new ARM64 installation is set up against SQL Server or PostgreSQL. Run the installer as an administrator: it upgrades an existing 5.x, 6.2.x or 6.3.x installation in place. The installer is Authenticode-signed by Progressive Robot Ltd.

  • hMailServer-6.3.8-x64.exex64 · 87.5 MB
    Download
    SHA-2564b9b9c3102cb…7fbf8654 Verified against release notesSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
  • hMailServer-6.3.8-arm64.exeAArch64 · 79.1 MB
    Download
    SHA-256e5ce357b9ca4…e9b7f27a Verified against release notesSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)

Debian and Ubuntu

A .deb for Debian 12 and 13 and Ubuntu 24.04 and 26.04, on x86-64 and AArch64. The generic package, built on Ubuntu 26.04, is the one an installed server's update check asks for; it asks for glibc 2.38 or later, so Debian 12 takes its own package. Each listed release has a package of its own, named for it and built and tested in that release's container, the AArch64 ones cross-compiled and tested under emulation. The package needs ca-certificates, which apt installs with it. It sets up the service, its systemd unit and the configuration under /etc/hmailserver.

  • hmailserver_6.3.8_amd64.debx86-64 · 18.0 MB
    Download
    SHA-2562d78f039c5df…4e1c7faa Verified against SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
  • hmailserver_6.3.8_arm64.debAArch64 · 19.3 MB
    Download
    SHA-25698c81b12fc1b…2b9a03c6 Verified against SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
  • hmailserver_6.3.8-1~debian12_amd64.debDebian 12 · x86-64 · 18.7 MB
    Download
    SHA-256e35afb665361…806bdc14 Verified against SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
  • hmailserver_6.3.8-1~debian13_amd64.debDebian 13 · x86-64 · 18.6 MB
    Download
    SHA-256f36cbfb856f7…d84245c1 Verified against SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
  • hmailserver_6.3.8-1~ubuntu24.04_amd64.debUbuntu 24.04 · x86-64 · 18.3 MB
    Download
    SHA-256eb1e8a0fbb49…5364365d Verified against SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
  • hmailserver_6.3.8-1~debian12_arm64.debDebian 12 · AArch64 · 17.7 MB
    Download
    SHA-2566431899953fb…e2a66604 Verified against SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
  • hmailserver_6.3.8-1~debian13_arm64.debDebian 13 · AArch64 · 17.4 MB
    Download
    SHA-2564e16d26cd523…954cf100 Verified against SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
  • hmailserver_6.3.8-1~ubuntu24.04_arm64.debUbuntu 24.04 · AArch64 · 17.5 MB
    Download
    SHA-2567413c0a34ef1…0247593b Verified against SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)

Installsudo apt install ./hmailserver_6.3.8_amd64.debthen the three first-run commands

Fedora, Enterprise Linux and openSUSE

An .rpm for Fedora 43 and 44, Enterprise Linux 9 and 10, and openSUSE Leap 16.0 and Tumbleweed, on x86-64 and AArch64. The generic package is the one an installed server's update check asks for; it does not install on Enterprise Linux 9, which takes its own package. Each listed release has a package of its own, named for it and built and tested in that release's container, the AArch64 ones cross-compiled and tested under emulation. Every .rpm requires glibc's extra character-set converters, glibc-gconv-extra (glibc-gconv-modules-extra on openSUSE), which dnf and zypper install with it.

  • hmailserver-6.3.8-1.x86_64.rpmx86-64 · 13.2 MB
    Download
    SHA-256ab86a65faef2…7d2022a8 Verified against SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
  • hmailserver-6.3.8-1.aarch64.rpmAArch64 · 13.0 MB
    Download
    SHA-256405b8b4476f5…0f9b30b1 Verified against SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
  • hmailserver-6.3.8-1.el9.x86_64.rpmEnterprise Linux 9 · x86-64 · 13.4 MB
    Download
    SHA-2568f0cfd182f2e…c71ecbf4 Verified against SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
  • hmailserver-6.3.8-1.el10.x86_64.rpmEnterprise Linux 10 · x86-64 · 13.4 MB
    Download
    SHA-2560bc3090aaf75…0198c7c8 Verified against SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
  • hmailserver-6.3.8-1.fc43.x86_64.rpmFedora 43 · x86-64 · 13.4 MB
    Download
    SHA-25633263d1ce546…a8c8657d Verified against SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
  • hmailserver-6.3.8-1.fc44.x86_64.rpmFedora 44 · x86-64 · 13.4 MB
    Download
    SHA-256c035b78d2118…fe070298 Verified against SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
  • hmailserver-6.3.8-1.suse.lp160.x86_64.rpmopenSUSE Leap 16.0 · x86-64 · 13.2 MB
    Download
    SHA-2564357b8abb59e…81793567 Verified against SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
  • hmailserver-6.3.8-1.suse.tw.x86_64.rpmopenSUSE Tumbleweed · x86-64 · 13.4 MB
    Download
    SHA-256e5b9c2f1b861…8aa2210a Verified against SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
  • hmailserver-6.3.8-1.el9.aarch64.rpmEnterprise Linux 9 · AArch64 · 12.6 MB
    Download
    SHA-256ab3c37ad097b…ea196c9e Verified against SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
  • hmailserver-6.3.8-1.el10.aarch64.rpmEnterprise Linux 10 · AArch64 · 12.6 MB
    Download
    SHA-256e995b0698b8b…1dd82d2f Verified against SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
  • hmailserver-6.3.8-1.fc43.aarch64.rpmFedora 43 · AArch64 · 13.0 MB
    Download
    SHA-25615febf21b117…2fed5234 Verified against SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
  • hmailserver-6.3.8-1.fc44.aarch64.rpmFedora 44 · AArch64 · 13.0 MB
    Download
    SHA-256f791cb9018e3…ba300168 Verified against SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
  • hmailserver-6.3.8-1.suse.lp160.aarch64.rpmopenSUSE Leap 16.0 · AArch64 · 12.8 MB
    Download
    SHA-2569cd1a990c46c…5df8afc5 Verified against SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
  • hmailserver-6.3.8-1.suse.tw.aarch64.rpmopenSUSE Tumbleweed · AArch64 · 13.0 MB
    Download
    SHA-2564a2064338338…61d4880e Verified against SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)

Installsudo dnf install ./hmailserver-6.3.8-1.x86_64.rpmthen the three first-run commands

AppImage (try it out)

For seeing hMailServer run on a laptop, not for running mail: it runs as whoever starts it, with no service user, no systemd unit and no hardening, and it cannot bind port 25. Install the .deb or the .rpm to run mail. On Fedora, Enterprise Linux or openSUSE, install glibc-gconv-extra (glibc-gconv-modules-extra on openSUSE) first; the server says when they are missing.

  • hMailServer-6.3.8-x86_64.AppImagex86-64 · 20.9 MB
    Download
    SHA-256b49eb92fe914…24423180 Verified against SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
  • hMailServer-6.3.8-aarch64.AppImageAArch64 · 20.0 MB
    Download
    SHA-256869228b53c51…96513939 Verified against SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)

Installchmod +x hMailServer-6.3.8-x86_64.AppImage

Also published as a container image, registry.gitlab.com/hmailserver/hmailserver:6.3.8, one index over linux/amd64 and linux/arm64, each built from this release’s .deb of its architecture and signed with cosign as the release pipeline; the Helm chart is among the files below. ContainerImage.md gives the pull, the check of the project’s id and the Compose file.

What’s new in 6.3.8

hMailServer 6.3.8 is a security release: it fixes vulnerabilities the project found in its own code, which between them reach every earlier version, back to 6.0.0's first beta. It was published on 2 November 2026, built and signed by the project's GitLab CI pipeline from the tag v6.3.8, and it carries every file that pipeline makes: the x64 and ARM64 Windows installers, .deb and .rpm packages for x86-64 and AArch64 with one package for each of the distribution releases named under Downloads, both AppImages, the source tarball, the Helm chart, the PowerShell module, an SBOM for each compiled file and SLSA build provenance, with a Sigstore bundle beside each, and, new in 6.3.8, the provenance's signed envelope alone as one line of JSON; a container image is pushed from the same pipeline once the release is published. Each vulnerability is a work item with a CVE request, among them the four narrower cases of work item 78 that 6.3.7's notes left open. 6.3.8 was first decided, while releases pause, because the published Helm charts of 6.3.6 and 6.3.7 did not start a server, which only a release puts right; it also puts right the container image, which could not reach a MariaDB database, and the Windows installer, which ran over an installation of the original hMailServer's 5.7, and it carries everything that landed on master after 6.3.7. Its Windows installers carry the .NET Desktop Runtime 10.0.13, as 6.3.7's did, and its x64 installer MariaDB Connector/C 3.4.11. 6.3.8 requires schema 6108, as 6.3.6 and 6.3.7 do, and adds no upgrade step: from 6.3.6 or 6.3.7 the upgrade changes no table. The 6.3 line receives security fixes until 30 September 2027.

Read this first

Read this first: upgrade every server running 6.3.7 or earlier. The security section below says why, and the notices after this one say what an upgraded server does differently. Every file of 6.3.8 is signed with Sigstore as this release's own pipeline at the project's group path, https://gitlab.com/hmailserver/hmailserver//.gitlab-ci.yml@refs/tags/v6.3.8, with the project's id, 86730559, in the certificate, as 6.3.6 and 6.3.7 were; every server from 6.3.4 on has that signer compiled in and requires the id for it. From 6.3.7 or 6.3.6 the live update installs 6.3.8, with the running version's own file as its rollback image: on Windows a service running as LocalSystem installs it itself, and one running as NT SERVICE\hMailServer downloads and verifies it, then an administrator presses Install update on the Server status page of the Control Panel on the server, one Windows prompt, and the installer is checked again, elevated, before it runs; on Linux the installed version's update helper applies it, for the generic .deb and .rpm of either architecture and for both AppImages; an ARM64 Windows server finds the ARM64 installer by name. A server installed from one of 6.3.6's or 6.3.7's per-distribution packages is offered the generic package, which apt refuses on Debian 12 and dnf on Enterprise Linux 9: upgrade it with its package manager and its own release's package of 6.3.8. No live update was known to have installed a release signed at the group's path when the release notes were written.

Read this too

Read this too: from 6.3.4 or 6.3.5 the update is applied by the version already installed, so what 6.3.7's notes said of those two versions still holds. A Windows service running as LocalSystem installs 6.3.8 by its live update, from 6.3.5 with 6.3.5's file as its rollback image and from 6.3.4 without one; that image is no way back once the upgrade's schema steps have run, and the backup taken before the upgrade is. One running as NT SERVICE\hMailServer leaves the install to an administrator, whose Install update on those versions cannot do it: download hMailServer-6.3.8-x64.exe from the release, check that Get-AuthenticodeSignature reports it Valid and signed by CN=Progressive Robot Ltd, and run it as an administrator, once, keeping the service account on the installer's Service account page. On a machine that has not seen the file before, Windows SmartScreen may say that it "prevented an unrecognized app from starting": More info names the publisher, Progressive Robot Ltd, and with the signature checked, Run anyway installs it. On Linux from 6.3.4 or 6.3.5, install 6.3.8 with apt, dnf or zypper rather than by the live update, whose apply step on those two versions is the one 6.3.6 fixed, or turn the apply off first with systemctl disable --now hmailserver-update.path.

Read this too

Read this too: a server still carrying the three settings of 6.3.5's by-hand route refuses 6.3.8. A server whose UpdateSigningIdentity, UpdateSigningIssuer and UpdateSourceRepository still name the path the project began at refuses every release signed after the project moved, 6.3.8 included: clear the three first, as UpdateFeed.md says, on 6.3.4 and 6.3.5 in the Control Panel, with DELETE /api/v1/settings/ini/<name> or on Linux with hmailserver --set-setting <name>=, not in the file, which those versions put back; on 6.3.6, which reads them from hMailServer.ini alone, by deleting their lines from [Settings] with an editor run as an administrator, or on Linux with sudo hmailserver --set-setting <name>=, and restarting the service.

Read this too

Read this too: a server from 6.2.28 to 6.3.3, or one installed from 6.3.3's AArch64 packages or AppImages, upgrades by hand, once. Those versions trust only the GitHub workflow that signed the releases up to 6.3.3, and refuse a release signed on GitLab. After the backup Upgrading.md describes, on Windows run hMailServer-6.3.8-x64.exe over the existing installation; on Linux install the package with apt or dnf, or replace the AppImage with 6.3.8's (UpdateFeed.md, "A server from 6.2.28 to 6.3.3"). One pointed at this project's feed with UpdateFeedUrl downloads the installer at every check and refuses it: keep UpdateAutoDownload off there until then. A server older than 6.2.28 runs the installer, as always: the upgrade chain runs from every earlier version of this fork, and from the original hMailServer up to 5.6 and its 5.7 development builds up to schema 5708, and not from the original's 5.7 releases, which 6.3.8's installer refuses.

Read this too

Read this too: back up the database and the data directory first, each with its own tools (Upgrading.md). 6.3.8 adds no schema step, so an upgrade from 6.3.7 or 6.3.6 changes no table, and the live update's rollback, should 6.3.8 not start, meets no newer schema. From 6.3.5 or older the upgrade runs 6.3.6's three steps to 6108, which are one-way, and the backup is the only way back; from 6.3.3 or older 6.3.4's steps come first. A server upgraded from 6.3.6 or earlier meets as well what 6.3.7's notes say under "Before you upgrade" and in their list, and one from 6.3.5 or earlier what 6.3.6's list says.

Read this too

Read this too: a Helm release of the 6.3.6 or 6.3.7 chart is moved by hand. Its pod never started: those charts stopped at "container has runAsNonRoot and image has non-numeric user (hmailserver)", and, given the user by number, at an empty configuration volume that hid the image's settings file. Run helm repo update, then helm upgrade <release> hmailserver/hmailserver --reset-then-reuse-values (Helm 3.14 or later), then kubectl delete pod <release>-hmailserver-0, since the StatefulSet replaces no pod while one is not Running and Ready, and so never replaces the stuck one by itself. With --reuse-values instead the release keeps the old chart's fsGroup 1000 and database.port 5432; the pod still runs as 999. In a cluster whose policy refuses every sysctl, set unprivilegedPortsSysctl: false. A Compose deployment made from an earlier Compose file keeps its HM_REST_CERTIFICATE_FILE, HM_REST_PRIVATE_KEY_FILE and ./certs mount in the new file, the key readable by 999, or its REST API, and with it the Control Deck, the webmail and hmctl, does not start (ContainerImage.md, "Updates").

Read this too

Read this too: the container image now reaches a MariaDB database, and keeps its passwords out of the server's environment. The images of 6.3.7 and earlier carried PostgreSQL's client alone, so a container told HM_DB_TYPE=MySQL stopped at its first start; 6.3.8's carries MariaDB Connector/C (libmariadb3), and the chart passes a database port only when one is set, so a chart told MySQL no longer dials MariaDB on PostgreSQL's port. The image's entrypoint secures a new installation by itself, whatever the container's command, and takes HM_DB_PASSWORD, HM_ADMIN_PASSWORD, their _FILE forms and HMAILSERVER_RECOVERY_PASSPHRASE out of the environment before it runs any program. The Compose file's and the Helm chart's commands are shell command lines and still pass the settings' variables (HM_SETTING_*, HM_PROPERTY_* and the rest) to the server, so a setting that is a secret belongs in a _FILE variable there, as their examples give it, and HMAILSERVER_RECOVERY_PASSPHRASE only in the environment of a container started to run hmailserver --decrypt-store.

Read this too

Read this too: on Windows, never run this fork's installer of 6.3.7 or earlier over the original hMailServer's 5.7. Both projects' installers register as hMailServer_is1, so those of 6.3.7 and earlier took an installation of the original's 5.7 builds of August and September 2026 (5.7.0 and its pre-release builds 2788 and 2843, 5.7.1 and 5.7.2: schema 5709 to 5711, which this fork's upgrade chain has no step from) for their own and replaced its programs. 6.3.8's setup asks first, before a page is shown or anything is installed or stopped, and refuses such an installation with a message that says nothing has been changed; silent, it ends with exit code 1 and writes the reason to its log (/LOG) and to hMailServer-setup-refused.txt in %TEMP%. Move such a server's mail over IMAP instead (Migration.md, "From the original hMailServer"). An installation of this fork, or of the original up to 5.6 and its 5.7 development builds up to schema 5708, is upgraded as before.

Read this too

Read this too: TlsMode=verify-full on MySQL or MariaDB without TlsCaFile, to a database server on this machine, is now refused. Through MariaDB Connector/C, the client the Windows installer bundles and the one the Linux server loads (libmariadb.so.3), such a connection (to 127.0.0.1, ::1, localhost, an empty Server=, the name "." for a named pipe on Windows, a Unix socket, or a Server= list that holds one) was made, from Connector/C 3.4.1 on, with neither the certificate's issuer nor its name checked; 6.3.8 refuses it before anything is attempted, with HM7535 (new) in the error log. Before upgrading, name in TlsCaFile a CA that issues nothing but the database's certificates, the one that issued its certificate, or set TlsMode=require (DatabaseTls.md). On Linux the client is the distribution's, which should be MariaDB Connector/C 3.4.11 or later; where it is older and not patched, name the CA in TlsCaFile.

Read this too

Read this too: on Windows, a file whose path holds characters outside ASCII may be refused. A TlsCaFile (with TlsMode=verify-full) or a PostgreSQLSslRootCert whose name the client cannot be handed as it is named is refused with HM7534 (new), and the database is then not reached; a TLS certificate or private key file, dh2048.pem, a client-certificate CA file, MessageStoreObjectCaFile, OAuth2PublicKeyFile or a file in AcmeCertificateDirectory is refused with HM7536 (new), and then what the file is for does not work: a port whose certificate or key it names does not start. OAuth2PublicKeyFile was handed over in UTF-8 up to 6.3.7, so a name outside the code page that worked then is refused now. Give each such file, and the folders above it, an ASCII name before upgrading (DatabaseTls.md).

Read this too

Read this too: on Linux, file names outside ASCII are UTF-8 whatever LANG says. A server that ran under a LANG that is not UTF-8 named such files in that locale's bytes and no longer finds them: where its data directory, a domain or account folder, LogFolder, TlsCaFile or a TLS certificate or key file is named outside ASCII, rename each to its UTF-8 name before upgrading, for example with convmv -f iso-8859-1 -t utf-8 -r --notest <folder>. Under a UTF-8 LANG, the packages', nothing changes. A LANG, LC_ALL or LC_CTYPE naming a locale the machine does not have no longer stops the server at its start, and the values --set-setting, --apply-profile, --account and --domain take, and --config, are read as UTF-8 and refused with exit 2 when they are not.

Read this too

Read this too: on Windows, setup makes or hardens the program folder, Bin and ControlPanel before it copies a file or runs a program of the installation, and refuses what another account controls. A program folder, Bin or ControlPanel, a folder or a link on the way to them, or a program, library, script or settings file in them, that another account than SYSTEM, the Administrators and TrustedInstaller controls, and a program folder on a share or on a volume that keeps no permissions (FAT, exFAT), end the installation with exit code 7, each named with the icacls that deals with it and, where the refusal says so, a restart of Windows before setup runs again, and setup refuses to run again until that restart. The folders and links on the way are looked at before setup stops the service, so that such a refusal leaves a running server running. Anything not as setup left it after the files ends the installation with exit code 12 and sets the service not to start until setup runs again (ServiceAccount.md, "Before the files").

Read this too

Read this too: sign-in names, IP ranges and REST request bodies are held more strictly. A mail client that signs in with another spelling of the account's address than the stored one, in more than the case of the letters A to Z, or with white space at either end, may no longer sign in: correct the name in the client. IP ranges of your own that allow some addresses none of SMTP, POP3 and IMAP, with the web services listener on, now close that listener to those addresses too, and with it ACME's http-01 validation when this listener answers it, MTA-STS, CalDAV, CardDAV, Autodiscover, autoconfiguration and the Web Key Directory: check that the certificate authority, the sending MTAs and these services' clients do not come from one. A REST client of your own that sends a body that is not one JSON object, names a member twice, holds an escaped U+0000 or passes the bounds (100,000 values, 32 levels deep), or that writes a member whose absence is the wider setting as another type than its route reads, is answered 400.

Read this too

Read this too: ACME, Chocolatey, monitoring and the .NET runtime change too. A server whose AcmeDomains lists a host its certificate does not name orders a certificate for every host at the first check after the upgrade; a host the CA cannot validate fails the whole order, at most three times an hour, and holds the renewal for the other hosts with it: take such a host off the list before upgrading. When installing with Chocolatey, give the administrator password in HM_ADMIN_PASSWORD, set in the elevated prompt, not with /adminpassword in --install-arguments: the install now passes the installer /LOG, and the log records setup's command line. A stop's interruption is now a line in the debug log, not the error log, and runs no OnError script; an event script's call that meets a stop fails with "The server is stopping. The request was not completed." The .NET 10 Desktop Runtime, on which the Control Panel and the setup tools run, is installed only where none is, so an upgraded server keeps the one it had: bring it up to date through Microsoft Update, or with Microsoft's installer from https://dotnet.microsoft.com/download/dotnet/10.0.

Full release notes for 6.3.8 9 sections

Security

Each of these was found by the hMailServer project (Progressive Robot Ltd) and, but for the last, is fixed in 6.3.8; each work item is public now, and each has a CVE request through GitLab's CNA. Between them they reach back to 6.0.0's first beta. The 6.3.8 section of CHANGELOG.md at the tag gives each, with how it is tested. Upgrade every server running 6.3.7 or earlier.

  • CVE requested (work item 112): TlsMode=verify-full on MySQL and MariaDB checks the database server's certificate against the file TlsCaFile names when that name holds a character outside ASCII (on Linux any, on Windows one above U+00FF), where the client was given no CA file at all and checked the certificate against the system's trust store, with some versions of MariaDB Connector/C less than that, while the log and the diagnostics said it had been checked; 6.3.4 to 6.3.7. Its entry corrects what 6.3.7's notes said of a named TlsCaFile as the mitigation for CVE-2026-107819, MariaDB Connector/C's own flaw: it did not hold for such a name.
  • CVE requested (work item 113): TlsMode=verify-full without TlsCaFile, on a connection that MariaDB Connector/C 3.4.1 or later takes as one to this machine, checked neither the database server's certificate's issuer nor its name; 6.3.4 to 6.3.7. It is now refused, with HM7535 (the notices above). Connector/C 3.3 and 3.4.0 and Oracle's MySQL client were not affected.
  • CVE requested (work item 114): on Windows, a root certificate's name (PostgreSQLSslRootCert, or TlsCaFile with TlsMode=verify-full) whose bytes in the ANSI code page outside ASCII also read as UTF-8 could make the database's client check the server's certificate against another file than the one named; 6.2.25 to 6.3.7. Such a name is now refused with HM7534. The bundled MariaDB Connector/C and the Linux builds were not affected.
  • CVE requested (work item 115): on Windows, the files the server hands to OpenSSL by name (the TLS certificates' certificate and private key files, dh2048.pem, a port's client-certificate CA file, MessageStoreObjectCaFile and the files in AcmeCertificateDirectory) could, under a name with some characters outside ASCII, be read from another file than the one configured; every release up to and including 6.3.7. Each is now read from the file configured, or refused with HM7536.
  • CVE requested (work item 116): on Windows, the bundled MySQL and MariaDB client, MariaDB Connector/C, loads its authentication plugins from the installation's own plugin folder, one that only administrators control, or from none.
  • CVE requested (work item 100): the database layer's test for the marker that lets a statement's error be ignored, and the log's and the trace's redaction of a statement's literals, read a literal as each engine does.
  • CVE requested (work item 102): the auto-ban saves the IP range it adds under a name of its own, so that it bans the address. Up to 6.3.7 a later ban for a long user name could take a range name in use, be refused (HM6099) and leave the address unbanned, its counted failures cleared all the same, so that it was given a whole new set of attempts.
  • CVE requested (work item 104): a sign-in's name is matched to its account as the per-name lockout (from 6.2.22-pre2) and the compromised-account hold (from 6.3.4) count it. Up to 6.3.7 every spelling of a name that the database's own comparison took for the account signed in to it, each with a lockout threshold of its own, and an account held for review could be signed into under another spelling of its name with its password.
  • CVE requested (work item 105): the web services listener (CardDAV, CalDAV, Autodiscover; off by default) did not refuse an address an auto-ban or an administrator's IP range banned, which could go on guessing passwords at its sign-in; it now closes such a connection with no answer, before the TLS handshake.
  • CVE requested (work item 106): a failed sign-in at the web services listener through a proxy is no longer charged to the proxy's address, whose ban could shut the proxy, and every client behind it, out of the SMTP, POP3, IMAP and ManageSieve listeners; since 6.3.3 for CardDAV and 6.3.4 for CalDAV and Autodiscover.
  • CVE requested (work item 107): a failed account sign-in at the REST listener through a reverse proxy on the same machine is no longer charged to 127.0.0.1, whose ban then refused loopback at the mail listeners; since 6.2.28. Until the upgrade, on 6.3.2 to 6.3.7, listing 127.0.0.1 and ::1 in AutoBanNeverBan avoids it.
  • CVE requested (work items 110 and 111): the REST API, and the reader of a report mailed to a domain's report address, read a JSON body in time and memory that follow its bytes. From 6.3.2 an account's own password was enough to send the REST API a body that took far more time and memory to read than its size, in the service that also serves SMTP, IMAP and POP3, and from 6.3.4 the same was true of the reply to a password-protected message. A body of more than 100,000 values, an object of more than 10,000 members or more than 32 levels is now answered 400, the reply is held to 2 MB, and a TLS-RPT report is read through the bounded parse.
  • CVE requested, one for each case (work item 78): on Windows, setup makes or hardens the program folder, Bin and ControlPanel before it copies a file or runs a program of the installation, and refuses a folder or a link on the way to them, or a program, library or script in them, that another account controls. These are the four narrower cases that 6.3.7's notes listed as still open: a new folder, a folder already there, a link on the way to them, and a program, library or script in them. In 6.3.7 an upgrade had the three hardened only at the end of setup, by /ProtectFolders, and setup installed through any link.
  • CVE requested (work item 103): published with 6.3.8, the advisory for a flaw in the auto-ban on MySQL and MariaDB that 6.3.4 fixed.

The release notes' Security section has more beside these. The container image secures a new installation by itself, whatever the container's command, where a docker run of the image with its own command took passwords in the clear on every port, and its two passwords no longer reach the server's environment, nor that of anything it starts, nor does HMAILSERVER_RECOVERY_PASSPHRASE when the container runs the image's own command (hardening, not a flaw). A mailbox's recovery address can no longer be sent more password-reset links than the per-address limit allows by other spellings of the address, as it could from 6.3.4. On Linux a command run as root examines and opens the folders it will work in by the names the server uses for them, and hMailServer.exe /ProtectFolders says a key or certificate file that inherits a group of every user's Read as inheriting it.

One of these fixes, work item 100's, was public on GitLab from 19 October 2026 and on master from 20 October 2026, a week before it was judged a vulnerability, longer than the day SECURITY.md allows; the others were pushed with the release. The rule, that a security fix becomes public about a day before the release that ships it, holds again after 6.3.8 (SECURITY.md, "What gets a release").

What changes without a switch

The full list is the 6.3.8 section of CHANGELOG.md, under "What changes on upgrade without a switch", in 29 items. Beside the notices above, in short:

  • Stops: work that outlasted a stop of the servers, a reinitialise among them, writes a line to the debug log where it wrote HM5136 or another code to the error log, so the error log of a server that reinitialises may be quieter; a database connection such a call held goes back to the pool; and on Linux a session or a task that went on after a stop no longer ends the process.
  • ACME: a name no certificate can carry (a wildcard, an IP address, a name past ASCII not in its xn-- form) is left out of the check and the order and named in the application log, where it failed every order; a CA's rateLimited answer holds every order until its Retry-After; an ACME URL that is not https is refused unless it is to this machine; and the certificate a CA sends is installed only when it is for the request's key, names every host asked for and has not expired.
  • The auto-ban's ranges: a ban for a long user name is named with the user name cut so that the name and its suffix fit the column, and POST /api/v1/ipranges reads a name in UTF-8, as PUT does.
  • Failed sign-ins through a proxy: from loopback or an address in WebServicesTrustedProxies at the web services listener, and from loopback at the REST listener, a failed sign-in is counted against the name alone (AccountLockoutThreshold, off by default, is then the limit on the guesses at one account), never towards a ban of the address.
  • Sign-in names: the IMAP master user's own hold, country policy and lockout are asked of its own address as well; the account.locked webhook is raised only for a locked name that is an account's own; and POST /api/v1/password-reset counts its per-address limit under the address as a sign-in compares it.
  • The logs: the slow-query line and the trace's db.statement read a literal as the configured database does, so a line may differ from before, and --check-database's settings line and the connection lines say what the database client checks.
  • spamd and Blowfish: spamd's User: header carries a name outside ASCII, where it was left out, and a name it cannot carry is sent as no header with HM5514 (new); the legacy Blowfish scheme refuses a secret it cannot carry (HM7278, new), where it wrote an empty one, and a backup's XML leaves such a secret out and names it (HM7280, new), to be entered again after a restore.
  • Argon2id: GET /api/v1/status's argon2id and post_quantum_key_exchange say what the library the server runs with does, and an app password raised to Argon2id where that library has none is made with scrypt and said once (HM5607), where it was an empty hash the store refused.
  • On Linux, hmailserver --create-database asks first whether the schema's version table is there, so a new installation no longer logs HM5033 as its first error; on Alpine a log line holding a character outside ASCII is written, where it came out empty.
  • The Control Panel's Logging page shows a destination never chosen as Files on disk, its Anti-spam page opens and saves a refuse threshold at or below the mark threshold, the Anti-spam overview reads the quarantine switch, and the ACME page and the Setup checklist read AcmeDomains as the server does. The PowerShell module says why a call got no answer, and hmctl takes a file that begins with a byte order mark and refuses a body holding NaN or Infinity.

What is new

  • A host added to AcmeDomains no longer waits for the renewal, some sixty days, and a check can be asked for (work item 98). A certificate that does not name every host on the list is now due at once, a save of AcmeDomains in the running server starts the check, and GET /api/v1/acme and POST /api/v1/acme/run (COM Utilities.GetAcmeStatus and Utilities.RunAcmeCheck, and a card on the Control Deck's Certificates page) give the certificate's state and ask for a check, with the CA's rate limits and a pause after a failed attempt kept (Acme.md).
  • An event after an IMAP move, for scripts (work item 109): OnIMAPMessageMoved is called once for each message an IMAP MOVE or UID MOVE moved between two folders of the account signed in, after the command and off the IMAP thread. Off as shipped: IMAPMessageMovedEvents switches it on.
  • Rspamd learns from the Junk folder, beside SpamAssassin (work item 108). A message a user moves into Junk is taught as spam, and one moved out as ham, to the filter MoveLearningBackend names, SpamAssassin by default; nothing is sent to Rspamd until it is chosen and its controller and classifier are set (JunkFolderLearning.md).
  • The Linux server reaches clamd over its Unix socket: ClamAVHost takes the absolute path of clamd's LocalSocket in place of a host name (ClamAV.md).
  • New ways to install: an Ansible collection, progressiverobot.hmailserver (Ansible.md); a Kubernetes operator for Operator Lifecycle Manager and OperatorHub.io; and a container on Proxmox VE with one command on the host (Proxmox.md). Known issues, below, says where each stood when 6.3.8 was published.
  • The release's provenance is held to the pipeline that publishes it and to what GitLab certified of the run, and the documents say its SLSA level, Build L1 and no higher.
  • Who made what: the packages, the image, the chart, the snap and the command-line clients say that they are Progressive Robot's fork of hMailServer and credit the original's author, Martin Knafve, and the tree is REUSE-compliant, with a CI job that holds it.

Reported from outside and answered besides: on-demand ACME issuance (work item 98), Rspamd learning from the Junk folder (work item 108) and an event after an IMAP move (work item 109), each asked for by ThiagoES84. Thank you.

Downloads

The release carries 62 files, each with its Sigstore bundle, <file>.cosign.bundle, beside it, and each file but a <file>.cdx.json SBOM has that bundle a second time as <file>.sigstore.json, the name Sigstore's own clients look for; with the bundles, the provenance and the provenance's envelope, 161 files.

  • Windows: hMailServer-6.3.8-x64.exe, and hMailServer-6.3.8-arm64.exe for Windows on ARM, both Authenticode-signed by Progressive Robot Ltd. The ARM64 installer is a preview: it is cross-compiled on the project's x64 Windows runner and has never run on ARM64 hardware. SQL Server Compact has no ARM64 build, so a new ARM64 installation is set up against SQL Server or PostgreSQL (WindowsOnArm.md).
  • Linux, x86-64 and AArch64: the generic hmailserver_6.3.8_amd64.deb, hmailserver_6.3.8_arm64.deb, hmailserver-6.3.8-1.x86_64.rpm and hmailserver-6.3.8-1.aarch64.rpm, the names an installed server's update check asks for; and each Debian 12 and 13, Ubuntu 24.04, Fedora 44 and 43, Enterprise Linux 10 and 9, openSUSE Leap 16.0 and Tumbleweed release's own package for both architectures, named hmailserver_6.3.8-1~<release>_<arch>.deb or hmailserver-6.3.8-1.<release>.<arch>.rpm. The generic .deb does not install on Debian 12, nor the generic .rpm on Enterprise Linux 9: each takes its own release's package. The AArch64 files are cross-compiled and tested under emulation: no AArch64 machine has run them.
  • The AppImages, hMailServer-6.3.8-x86_64.AppImage and hMailServer-6.3.8-aarch64.AppImage, and beside them the source of the libraries they carry and of those their runtime links, hmailserver-6.3.8-appimage-bundled-sources.tar.gz and hmailserver-6.3.8-appimage-runtime-sources.tar.gz.
  • The source tarball, hmailserver-6.3.8.tar.gz; the Helm chart, hmailserver-chart-6.3.8.tgz, the first published chart that starts a server; and the PowerShell module, HmailServer.psd1 and HmailServer.psm1, Authenticode-signed.
  • An SBOM for each compiled file and the tarball, <file>.cdx.json, and the source tree's two, hmailserver.spdx.json and hmailserver.cyclonedx.json; hmailserver-linux-6.3.8-SHA256SUMS.txt, the SHA-256 of every Linux file; and, beside the 62, hmailserver-6.3.8.intoto.sigstore.json, SLSA v1 build provenance that names each of them by its SHA-256.
  • New in 6.3.8, hmailserver-6.3.8.intoto.jsonl: the DSSE envelope inside the provenance's Sigstore bundle, the statement and its one signature byte for byte as the bundle has them, written alone as one line of JSON. It is not a second signature, and it carries neither the certificate nor the transparency log's entry, which only the bundle carries: the bundle is the file to verify with.

The container image, registry.gitlab.com/hmailserver/hmailserver:6.3.8, also tagged 6.3 and latest, for linux/amd64 and linux/arm64, is pushed from this release's own pipeline once the release is published, by a job started by hand, as 6.3.6's and 6.3.7's were; it carries MariaDB Connector/C beside PostgreSQL's client. In the container the update check names the image to pull and installs nothing. ContainerImage.md, "Checking an image", gives the cosign verify command and the check of the project's id. The chart is also in the project's Helm repository, https://updates.progressiverobot.com/helm/.

The channels are sent 6.3.8 by jobs started by hand on master once the release is published, each verified against the release's bundles: the Ubuntu PPA, Fedora Copr, Docker Hub, Chocolatey (a version is listed once its moderators have approved it), PyPI and the PowerShell Gallery; the openSUSE Build Service once its package holds this release's new _service, keeping 6.3.7 until then; and the snaps, to the Snap Store's edge and candidate channels, stable being promoted by hand. 6.3.8's snaps are the first there, since 6.3.7's were never uploaded (Channels.md).

https://updates.progressiverobot.com/download/ leads to the newest stable release's page, and updates.progressiverobot.com/download/hMailServer-x64.exe, /download/hmailserver_amd64.deb, /download/hmailserver.x86_64.rpm and the rest of the download links UpdateFeed.md lists to that file of it, never to a pre-release; add .cosign.bundle for the bundle.

Verification

Every file is signed with Sigstore by the project's GitLab CI pipeline for the tag v6.3.8, and was checked before publication with hmailserver --verify-update, built from the same commit, 3a2fc29b7fb52a27e7c1a6b8e25c99d94a4756ba. The certificate's identity is https://gitlab.com/hmailserver/hmailserver//.gitlab-ci.yml@refs/tags/v6.3.8, its issuer https://gitlab.com, and it carries the project's id, 86730559. With cosign and OpenSSL, and the file and its bundle beside you, the first command must say Verified OK, and the second must print ..86730559, the project's own id, which cosign does not check, since the identity is a path and a path could pass to another project were the group or the project renamed or deleted:

cosign verify-blob --bundle hMailServer-6.3.8-x64.exe.cosign.bundle \
--certificate-identity 'https://gitlab.com/hmailserver/hmailserver//.gitlab-ci.yml@refs/tags/v6.3.8' \
--certificate-oidc-issuer https://gitlab.com hMailServer-6.3.8-x64.exe
jq -r .verificationMaterial.certificate.rawBytes hMailServer-6.3.8-x64.exe.cosign.bundle \
| base64 -d | openssl x509 -inform DER -noout -text | grep -A1 1.3.6.1.4.1.57264.1.15

If your cosign has the --new-bundle-format option and does not use it by default, add it. Each file but a <file>.cdx.json SBOM also has its bundle a second time as <file>.sigstore.json; either name verifies the same way. From the source tarball, python3 build/ci/sigstore-certificate.py repository-id <file>.cosign.bundle reads the id as the server does and prints id=86730559. To check that a file is one this release's pipeline built, against its build provenance, which says Verified OK only when the file's SHA-256 is one the provenance names:

cosign verify-blob-attestation --new-bundle-format \
--bundle hmailserver-6.3.8.intoto.sigstore.json --type slsaprovenance1 \
--certificate-identity 'https://gitlab.com/hmailserver/hmailserver//.gitlab-ci.yml@refs/tags/v6.3.8' \
--certificate-oidc-issuer https://gitlab.com hmailserver_6.3.8_amd64.deb

That check takes the bundle, hmailserver-6.3.8.intoto.sigstore.json, not hmailserver-6.3.8.intoto.jsonl, which holds the same envelope without the certificate. Then sha256sum -c --ignore-missing hmailserver-linux-6.3.8-SHA256SUMS.txt must say OK for each Linux file you downloaded. On Windows, Get-AuthenticodeSignature on either installer must answer Valid, with a signer certificate for CN=Progressive Robot Ltd; the x64 installer's published SHA-256 is 4b9b9c3102cbed743f6c826289c54cec25c395d02208e55cdd3219187fbf8654 and the ARM64 installer's e5ce357b9ca4e013529898c5208d43895fec3a397b1a4defa4cd905ee9b7f27a. On Linux a server from 6.3.4 on makes the same check its live update makes, hmailserver --verify-update <file>, with the bundle beside the file. In a clone, git -c gpg.ssh.allowedSignersFile=.gitlab/allowed_signers verify-tag v6.3.8 must report a good signature by the key that file lists. The release's own notes, at https://gitlab.com/hmailserver/hmailserver/-/releases/v6.3.8 under Verification, give each file's SHA-256 and the certificate the pipeline was given; SECURITY.md, "Verifying a release", has the rest.

How it was checked

The tag's pipeline, https://gitlab.com/hmailserver/hmailserver/-/pipelines/3016341592, ran every gate before anything was published: the Windows suite, in two halves on the project's two Windows benches, 4,569 tests, 4,489 passed, 0 failed, 80 skipped; the Linux suite on one of the project's Linux runners, 2,749 tests, 2,374 passed, 0 failed, 375 skipped; the rebuild of the x86-64 server, .deb and .rpm byte for byte; the install of every Linux package in a clean container of its release, by that release's own package manager, the AArch64 ones under emulation, but for the generic x86-64 .rpm, which is built on Ubuntu and was installed on Fedora 44 with rpm --nodeps, its dependencies not resolved; the start of the generic x86-64 .deb and of the generic AArch64 .deb and .rpm against a database; the REUSE check; the static analysis, Semgrep and the dependency scan. It then checked every signature with the server's own verifier, hmailserver --verify-update, built from the same commit. The signed installer went through the installer smoke test: an upgrade from 6.3.7 passed 105 checks and a new installation 65, none failed. The published chart, installed from the project's Helm repository into a one-node cluster, started its pod with 6.3.8's image and answered SMTP with STARTTLS and the REST API over TLS.

Known issues

  • The ARM64 installer has never run on ARM64 hardware: it is cross-compiled on the project's x64 Windows runner and remains a preview (WindowsOnArm.md). The AArch64 Linux files are cross-compiled, and installed, the generic .deb and .rpm started as well, in the release's pipeline under emulation: no AArch64 machine has run them. If you install either, please say how it went, working or not, in an issue on GitLab.
  • The channels are sent 6.3.8 by jobs started by hand (Downloads, above). The Ansible collection was not on Ansible Galaxy when 6.3.8 was published, and the one in 6.3.8's tree installs 6.3.7 unless it is given another release's SHA-256; the operator's pull request to OperatorHub.io is made by hand.
  • The Proxmox VE scripts have not run on a Proxmox VE host, only as a dry run, with stand-ins of its commands, and in a container made from its own debian-13-standard template. If you run them, please say how it went in an issue.
  • The image's OpenSSL, Ubuntu 24.04's 3.0.13, has neither the hybrid post-quantum key exchange groups nor Argon2id: its server logs HM5720 and takes the classical groups and scrypt, and GET /api/v1/status says false for both.
  • An AppImage on Fedora, Enterprise Linux or openSUSE runs on the host's glibc and cannot require its extra character-set converters: install glibc-gconv-extra (Fedora, EL) or glibc-gconv-modules-extra (openSUSE) by hand; the server says when they are missing.
  • An upgraded server keeps the .NET 10 Desktop Runtime it had (the notices above).

While releases pause

6.3.6 was the last release planned by date, by the owner's decision of 28 September 2026; the releases since are security releases, each cut from master with whatever finished work master holds then, until the maintainers say otherwise in SECURITY.md, "While releases pause". A confirmed vulnerability still ships in a release: a critical or high one as soon as its fix has passed the gates, and none held past 90 days from its acknowledgement. Other defects are fixed on master and ship with the next security release, or when releases resume. 6.3.8 was first decided on 24 October 2026, under the owner's delegation, because the published Helm charts of 6.3.6 and 6.3.7 start no server, and neither the chart nor the image of a release can be put right but by a release; the project's own work since found the vulnerabilities above, and 6.3.8 is made as a security release, that reason standing beside them. The 6.3 line receives security fixes until 30 September 2027; before that date the maintainers write in SECURITY.md whether support continues, and if nothing has been written, the 6.3 line is not supported from 1 October 2027. Nothing is back-ported: an installation of 6.3.7, 6.2 or anything older is upgraded in place to the newest release. To hear of a release, switch the server's update check on (UpdateCheckEnabled), or follow the releases' feed at updates.progressiverobot.com/releases.atom.

The project, and reporting a vulnerability

The project's home is GitLab, at gitlab.com/hmailserver/hmailserver, where it moved from gitlab.com/Progressiverobot/hmailserver on 29 September 2026, with issue templates and a Service Desk address for anyone without a GitLab account: a bug report or a question for the maintainers emailed to contact-project+hmailserver-hmailserver-86730559-issue-@incoming.gitlab.com becomes a confidential issue, which only the maintainers see. Open an issue at https://gitlab.com/hmailserver/hmailserver/-/issues/new; the work items, 6.3.8's among them, are listed at https://gitlab.com/hmailserver/hmailserver/-/work_items. The release is also mirrored on GitHub, at https://github.com/RainbowWizard-coder/hMailServer/releases/tag/v6.3.8; GitLab stays canonical and the one place the project is worked on, and the repository on GitHub takes no issues. Questions go to the forum, https://www.hmailserver.co.uk/, where 6.3.8 is announced at https://www.hmailserver.co.uk/topic/28278; give the full build stamp on Windows, 6.3.8.47 for 6.3.8, or the exact package version on Linux. Report a vulnerability privately, as SECURITY.md says: a confidential GitLab issue with the Security template (check that it is still marked confidential before you submit it), or an email to that Service Desk address, which GitLab files as a confidential issue. Never in a forum thread or a public issue.

Release facts

Version
6.3.8
Signed
2 November 2026Sigstore transparency log
Packages
26Windows and Linux, x86-64 and AArch64
Database schema
6108upgrades in place
Regression suite
4,569 tests4,489 passed · 0 failed · 80 skipped
Installer SHA-256
4b9b9c3102cb…7fbf8654hMailServer-6.3.8-x64.exe

Before you install

Verify what you downloaded

Compare the SHA-256 your machine computes with the one in the table, or verify the Sigstore bundle that rides beside every file of this release. Either proves the download is byte-for-byte what the release pipeline produced. Each release page lists its own files the same way; releases before 6.2.19 carry no signature, because the signing workflow came later, and a published release is never altered.

Windows

PowerShell prints the hash, and Get-AuthenticodeSignature should answer Valid. The installer’s Digital Signatures tab (right-click → Properties) names Progressive Robot Ltd from 6.3.1.

Get-FileHash .\hMailServer-6.3.8-x64.exe -Algorithm SHA256
Get-AuthenticodeSignature .\hMailServer-6.3.8-x64.exe

Linux

Check every file you downloaded against the signed checksum list in one go.

sha256sum -c hmailserver-linux-6.3.8-SHA256SUMS.txt --ignore-missing

Any file, with cosign

Each file has a .cosign.bundle beside it. The identity below is the project’s GitLab CI pipeline for this release’s tag; verification does not need the repository to be online. cosign checks the identity, a path; the certificate also carries the project’s id, 86730559, and Verifying a release in SECURITY.md shows how to read it.

cosign verify-blob --bundle hMailServer-6.3.8-x64.exe.cosign.bundle \
  --certificate-identity 'https://gitlab.com/hmailserver/hmailserver//.gitlab-ci.yml@refs/tags/v6.3.8' \
  --certificate-oidc-issuer https://gitlab.com \
  hMailServer-6.3.8-x64.exe

Every file in 6.3.8

Full SHA-256 of each file as recomputed on this server, with its Sigstore bundle beside it. The SBOM and the provenance are not needed to install: the SBOM lists every component in the build, and the provenance records how and where it was built.

FileWhat it isSizeSHA-256Signature
hMailServer-6.3.8-x64.exeWindows installer · x6487.5 MB4b9b9c3102cbed743f6c826289c54cec25c395d02208e55cdd3219187fbf8654 release notesSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hMailServer-6.3.8-arm64.exeWindows installer · AArch6479.1 MBe5ce357b9ca4e013529898c5208d43895fec3a397b1a4defa4cd905ee9b7f27a release notesSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver_6.3.8-1~debian12_amd64.debDebian package · Debian 12 · x86-6418.7 MBe35afb6653614a5973b2c6a14ae908ef819938097a5bfdc6abf1511c806bdc14 SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver_6.3.8-1~debian13_amd64.debDebian package · Debian 13 · x86-6418.6 MBf36cbfb856f7f6a33bc1b7459d01b015d1cdc1905208c308f1f48223d84245c1 SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver_6.3.8-1~ubuntu24.04_amd64.debDebian package · Ubuntu 24.04 · x86-6418.3 MBeb1e8a0fbb49f765eb8c305c8049d7fcdd825fbbeb3020eb9773930c5364365d SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver_6.3.8_amd64.debDebian package · x86-6418.0 MB2d78f039c5dfaca53857bf2013d88e731a3248bf786dec4ec4d670ea4e1c7faa SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver_6.3.8-1~debian12_arm64.debDebian package · Debian 12 · AArch6417.7 MB6431899953fbcf0f0aa0790043d14820a2baaae439d9eb7b583565e8e2a66604 SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver_6.3.8-1~debian13_arm64.debDebian package · Debian 13 · AArch6417.4 MB4e16d26cd5230f03ffd467feba1ea9265d60ffc1b56d3fae6008f02b954cf100 SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver_6.3.8-1~ubuntu24.04_arm64.debDebian package · Ubuntu 24.04 · AArch6417.5 MB7413c0a34ef1a9df11d744eef6b3f379d25d455cda83a406438d49700247593b SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver_6.3.8_arm64.debDebian package · AArch6419.3 MB98c81b12fc1b727f99c758b18168f6cb14a0986bfd1131a92674cd2d2b9a03c6 SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver-6.3.8-1.el9.x86_64.rpmRPM package · Enterprise Linux 9 · x86-6413.4 MB8f0cfd182f2e50a395bbcd8926ece2585c5ba010533849df369c6eb0c71ecbf4 SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver-6.3.8-1.el10.x86_64.rpmRPM package · Enterprise Linux 10 · x86-6413.4 MB0bc3090aaf75a65878c52564161fbaf3cccdaab9f026a647f1ab1e290198c7c8 SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver-6.3.8-1.fc43.x86_64.rpmRPM package · Fedora 43 · x86-6413.4 MB33263d1ce546673991b38e748a755e7793d3bcbf522f40d114ca2459a8c8657d SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver-6.3.8-1.fc44.x86_64.rpmRPM package · Fedora 44 · x86-6413.4 MBc035b78d211885b950adc7a2f3c43f8f750b2d746b12bb88e4f4d7d6fe070298 SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver-6.3.8-1.suse.lp160.x86_64.rpmRPM package · openSUSE Leap 16.0 · x86-6413.2 MB4357b8abb59e865a066698808874e4a9fe3e341690bf5f459e94ad4181793567 SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver-6.3.8-1.suse.tw.x86_64.rpmRPM package · openSUSE Tumbleweed · x86-6413.4 MBe5b9c2f1b861e38196a578f08e40c4c6a101a5003f56723dfbcd4b378aa2210a SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver-6.3.8-1.x86_64.rpmRPM package · x86-6413.2 MBab86a65faef22587bde53e7c943bdf4f0cbbf3038bae72c4b1231a0e7d2022a8 SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver-6.3.8-1.aarch64.rpmRPM package · AArch6413.0 MB405b8b4476f551acb60dd57e131e77eedac32043bac670cee5a935630f9b30b1 SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver-6.3.8-1.el9.aarch64.rpmRPM package · Enterprise Linux 9 · AArch6412.6 MBab3c37ad097b4030ea520bbd334b9672bc8618410da0e456264d4b01ea196c9e SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver-6.3.8-1.el10.aarch64.rpmRPM package · Enterprise Linux 10 · AArch6412.6 MBe995b0698b8b71e2e79586244cc888b1fbd38303cead4fe86a6459671dd82d2f SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver-6.3.8-1.fc43.aarch64.rpmRPM package · Fedora 43 · AArch6413.0 MB15febf21b117c38ff1d4a1f21ae537938f00bf4bc5b8f791584abae52fed5234 SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver-6.3.8-1.fc44.aarch64.rpmRPM package · Fedora 44 · AArch6413.0 MBf791cb9018e33ede3044de297dc38336257b81f16e390eeac22eb5a9ba300168 SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver-6.3.8-1.suse.lp160.aarch64.rpmRPM package · openSUSE Leap 16.0 · AArch6412.8 MB9cd1a990c46c5783987275a690c5c2e142fee6cffe36bddbb2233e545df8afc5 SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver-6.3.8-1.suse.tw.aarch64.rpmRPM package · openSUSE Tumbleweed · AArch6413.0 MB4a2064338338b408faa88985f1e9778203e1a5aabdb4f09932bcdfca61d4880e SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hMailServer-6.3.8-x86_64.AppImageAppImage · x86-6420.9 MBb49eb92fe914a312f6a604aac5a10b97dc50008c70840581e8bfb47b24423180 SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hMailServer-6.3.8-aarch64.AppImageAppImage · AArch6420.0 MB869228b53c51f1e0bf08a8b16551bcc5e8e3cbd0708bc8e2f11b3fec96513939 SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver-linux-6.3.8-SHA256SUMS.txtSHA-256 checksumsThe SHA-256 of each file it names, one per line; feed it to sha256sum -c.3 KB6531f761d4e49680c61d2e7a063596fb4679be36d3b92b34721a2c40d28cfe10Sigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver.spdx.jsonSBOM (SPDX)Every component in the build, in SPDX JSON.1.1 MB53e54236bed018f6a10be3b9a5ae5a86858e54b403b0214d5fe97cca56e0cfd4Sigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver.cyclonedx.jsonSBOM (CycloneDX)The same inventory in CycloneDX JSON.741 KBd5eecd50aec9ae3c85c8a8eb8e0f2424aa5ed6cf17e8824c1d0187f555de5b4aSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver-6.3.8-1.aarch64.rpm.cdx.jsonSBOM (CycloneDX) of one fileWhat hmailserver-6.3.8-1.aarch64.rpm holds and needs; its subject is that file by its SHA-256.20 KB732b1e363562fbac0aaac2c3b7e96cf34e96d6a78cfd273e1c9c459c6ebaffe1Signature: cosign bundle
hmailserver-6.3.8-1.el9.aarch64.rpm.cdx.jsonSBOM (CycloneDX) of one fileWhat hmailserver-6.3.8-1.el9.aarch64.rpm holds and needs; its subject is that file by its SHA-256.19 KB28e39570b4ef5a2350bb7b63120b9cc286436485f9b09784640d843176b7a9bdSignature: cosign bundle
hmailserver-6.3.8-1.el9.x86_64.rpm.cdx.jsonSBOM (CycloneDX) of one fileWhat hmailserver-6.3.8-1.el9.x86_64.rpm holds and needs; its subject is that file by its SHA-256.20 KB93bdd3a7d276b017722b4c6c21c3320931c49f8bfb18f03c3e44b875af385fa6Signature: cosign bundle
hmailserver-6.3.8-1.el10.aarch64.rpm.cdx.jsonSBOM (CycloneDX) of one fileWhat hmailserver-6.3.8-1.el10.aarch64.rpm holds and needs; its subject is that file by its SHA-256.20 KBd767cc84945df009caabd84b3c5479fca14cf23bfef6cd4c6f175fa4ea9b134eSignature: cosign bundle
hmailserver-6.3.8-1.el10.x86_64.rpm.cdx.jsonSBOM (CycloneDX) of one fileWhat hmailserver-6.3.8-1.el10.x86_64.rpm holds and needs; its subject is that file by its SHA-256.21 KBe19daada5742384c3b41f2a57b279f026a08985f70653644398b476b29b19a94Signature: cosign bundle
hmailserver-6.3.8-1.fc43.aarch64.rpm.cdx.jsonSBOM (CycloneDX) of one fileWhat hmailserver-6.3.8-1.fc43.aarch64.rpm holds and needs; its subject is that file by its SHA-256.20 KBce6353cb956d0b1568321c058ca0adc30263c838870c3d4a1736170f4ef12734Signature: cosign bundle
hmailserver-6.3.8-1.fc43.x86_64.rpm.cdx.jsonSBOM (CycloneDX) of one fileWhat hmailserver-6.3.8-1.fc43.x86_64.rpm holds and needs; its subject is that file by its SHA-256.21 KB2ec07adc58f81f1d73557f2680e1f4537efa7cb2f3e1737cc0d34b178f9250e8Signature: cosign bundle
hmailserver-6.3.8-1.fc44.aarch64.rpm.cdx.jsonSBOM (CycloneDX) of one fileWhat hmailserver-6.3.8-1.fc44.aarch64.rpm holds and needs; its subject is that file by its SHA-256.20 KB246b4c917ebc2579b4540a62771a4143a635a3a21d1dbbc6f9fbaba92aa2c7aeSignature: cosign bundle
hmailserver-6.3.8-1.fc44.x86_64.rpm.cdx.jsonSBOM (CycloneDX) of one fileWhat hmailserver-6.3.8-1.fc44.x86_64.rpm holds and needs; its subject is that file by its SHA-256.22 KB5ade79a30aa0afc5a4186339627ead600e7501c7435ad21e5bd6f11300e6668dSignature: cosign bundle
hmailserver-6.3.8-1.suse.lp160.aarch64.rpm.cdx.jsonSBOM (CycloneDX) of one fileWhat hmailserver-6.3.8-1.suse.lp160.aarch64.rpm holds and needs; its subject is that file by its SHA-256.20 KB226ca01f1b277c2b6c930185b1a7762adb0e445af12723c09ce446eb297d7c17Signature: cosign bundle
hmailserver-6.3.8-1.suse.lp160.x86_64.rpm.cdx.jsonSBOM (CycloneDX) of one fileWhat hmailserver-6.3.8-1.suse.lp160.x86_64.rpm holds and needs; its subject is that file by its SHA-256.21 KBcb26d8c74748968d53098f5a5d1eb250318a83dc2b5ff003a08536dde26d1476Signature: cosign bundle
hmailserver-6.3.8-1.suse.tw.aarch64.rpm.cdx.jsonSBOM (CycloneDX) of one fileWhat hmailserver-6.3.8-1.suse.tw.aarch64.rpm holds and needs; its subject is that file by its SHA-256.20 KB5796e4e461dab5b63bbc4c8fc39fce05b5f4fb747a704303c5d89287522946edSignature: cosign bundle
hmailserver-6.3.8-1.suse.tw.x86_64.rpm.cdx.jsonSBOM (CycloneDX) of one fileWhat hmailserver-6.3.8-1.suse.tw.x86_64.rpm holds and needs; its subject is that file by its SHA-256.21 KBa1477fc35d957a9cd78e2b5324577d1f0b66c70adb3a115ef4fd8451dfb0ceaeSignature: cosign bundle
hmailserver-6.3.8-1.x86_64.rpm.cdx.jsonSBOM (CycloneDX) of one fileWhat hmailserver-6.3.8-1.x86_64.rpm holds and needs; its subject is that file by its SHA-256.21 KB56074a369bec6d9861b2730d13ac696ce2e261d7368153aeab3e3ca0dfa55479Signature: cosign bundle
hMailServer-6.3.8-aarch64.AppImage.cdx.jsonSBOM (CycloneDX) of one fileWhat hMailServer-6.3.8-aarch64.AppImage holds and needs; its subject is that file by its SHA-256.45 KB7b53c4cd08cc76908d0e287a159fb8ea8edc965903945193e5a48e20c17106b6Signature: cosign bundle
hMailServer-6.3.8-arm64.exe.cdx.jsonSBOM (CycloneDX) of one fileWhat hMailServer-6.3.8-arm64.exe holds and needs; its subject is that file by its SHA-256.34 KB21f16ba61ca4b0016e93138854bc2e2a7c808fe83a6c68903e43c7f6bac2bad0Signature: cosign bundle
hMailServer-6.3.8-x64.exe.cdx.jsonSBOM (CycloneDX) of one fileWhat hMailServer-6.3.8-x64.exe holds and needs; its subject is that file by its SHA-256.41 KB4c0cf4cf9b035e90924cc1ff99412e69a32f1abdb4291934ecfd1f9088d48d58Signature: cosign bundle
hMailServer-6.3.8-x86_64.AppImage.cdx.jsonSBOM (CycloneDX) of one fileWhat hMailServer-6.3.8-x86_64.AppImage holds and needs; its subject is that file by its SHA-256.45 KB3f92dad1ece045fa1b6c366457b44c49af46114700f3c30f1279a8926e0e63cbSignature: cosign bundle
hmailserver-6.3.8.tar.gz.cdx.jsonSBOM (CycloneDX) of one fileWhat hmailserver-6.3.8.tar.gz holds and needs; its subject is that file by its SHA-256.14 KB091abcd7bde60004e63d81034d3fc2ba7cecda951136db4226472b5f82bb73d3Signature: cosign bundle
hmailserver_6.3.8-1~debian12_amd64.deb.cdx.jsonSBOM (CycloneDX) of one fileWhat hmailserver_6.3.8-1~debian12_amd64.deb holds and needs; its subject is that file by its SHA-256.13 KB9e7bbed5c3866cc8d0cb91f1151c9d94efa61585a5d44aca4c933b9a3d1cfc8dSignature: cosign bundle
hmailserver_6.3.8-1~debian12_arm64.deb.cdx.jsonSBOM (CycloneDX) of one fileWhat hmailserver_6.3.8-1~debian12_arm64.deb holds and needs; its subject is that file by its SHA-256.13 KB537d6e73f6a0aa29966f809c393159bade1493f10782e9369d3a1315cfc3d5f6Signature: cosign bundle
hmailserver_6.3.8-1~debian13_amd64.deb.cdx.jsonSBOM (CycloneDX) of one fileWhat hmailserver_6.3.8-1~debian13_amd64.deb holds and needs; its subject is that file by its SHA-256.12 KB1f2b2a8128d9430e09abce456063bab657c4a0903483fdc8bd38a93f591f8807Signature: cosign bundle
hmailserver_6.3.8-1~debian13_arm64.deb.cdx.jsonSBOM (CycloneDX) of one fileWhat hmailserver_6.3.8-1~debian13_arm64.deb holds and needs; its subject is that file by its SHA-256.12 KB6c897e6b40bb13061a607278076294dda9f5bc5c5bc2b2c9c4390e76589e64d4Signature: cosign bundle
hmailserver_6.3.8-1~ubuntu24.04_amd64.deb.cdx.jsonSBOM (CycloneDX) of one fileWhat hmailserver_6.3.8-1~ubuntu24.04_amd64.deb holds and needs; its subject is that file by its SHA-256.12 KB0461d4637f67005a72fcce8c1f69b874a8f42b76d4c583fdb0a6def29cd11bc6Signature: cosign bundle
hmailserver_6.3.8-1~ubuntu24.04_arm64.deb.cdx.jsonSBOM (CycloneDX) of one fileWhat hmailserver_6.3.8-1~ubuntu24.04_arm64.deb holds and needs; its subject is that file by its SHA-256.13 KB07bd8e227736d945d30bfb343c0cd7f60d89a6c085a16ecb344d9d0d9890cfeaSignature: cosign bundle
hmailserver_6.3.8_amd64.deb.cdx.jsonSBOM (CycloneDX) of one fileWhat hmailserver_6.3.8_amd64.deb holds and needs; its subject is that file by its SHA-256.12 KBa55aae056b6c556d17975534fa5d953fb32059e038072871e2afa6e2149d4d79Signature: cosign bundle
hmailserver_6.3.8_arm64.deb.cdx.jsonSBOM (CycloneDX) of one fileWhat hmailserver_6.3.8_arm64.deb holds and needs; its subject is that file by its SHA-256.12 KB7dfe60f4af0efa020a044a354db3e99a102179368140cb32cc2a42bd8af992e7Signature: cosign bundle
hmailserver-6.3.8.intoto.sigstore.jsonSLSA build provenanceSLSA v1 build provenance naming every file of the release by its SHA-256, signed by the release pipeline; cosign verify-blob-attestation checks a file against it.23 KBa11241b7d2e3ff9a7201fd5c43205df4d5b6415b9db925f0275f4220ac8b9c3a—
hmailserver-6.3.8.intoto.jsonlSLSA provenance envelopeThe provenance bundle's signed in-toto envelope on its own, as one line of JSON, for tools that read .intoto.jsonl files: the same statement and signature as the bundle.15 KB6c54f88b16196054bfae5b71170a4697c828675160380d1ace88e397bec7d7d4—
hmailserver-6.3.8.tar.gzSource tarballThe release's source, reproducible and with nothing non-free in it, from which a distribution builds the server.23.3 MB0aea5d97923ce19f89fc52f136aa18ddb2a14731a05135c17f7b33d019ca8315 SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver-6.3.8-appimage-bundled-sources.tar.gzAppImage sourcesThe source of the libraries the AppImages carry. Published as their licences ask; not needed to install.71.8 MBf018f2fd5096c174217968ef32ce2b461d4be6cab6edecc66cb90562b4c6bc64 SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver-6.3.8-appimage-runtime-sources.tar.gzAppImage sourcesThe source of the libraries the AppImage runtime links. Published as their licences ask; not needed to install.10.2 MB83e7817da7da30c1c2ceab39d40df26cc81b5fe4939271cae1c9fce0d951bddc SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
hmailserver-chart-6.3.8.tgzHelm chartThe Kubernetes chart at this release's version, naming its container image.13 KBd424c695c3bbcd87f4c3a58bca4d6e738d0ea0a892187caf00c5eaace1f87a92 SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
HmailServer.psd1PowerShell moduleThe module's manifest, Authenticode-signed; for Windows PowerShell 5.1 and PowerShell 7.26 KB433732c8f451b6345610009f2c2de30e0a58312ffebca70d4d7cf4065b97afdcSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)
HmailServer.psm1PowerShell moduleThe module, Authenticode-signed; for Windows PowerShell 5.1 and PowerShell 7.149 KB14527091ff1656031eaa287c3a819b12092f6c659996e52eea56a62ba147e4fcSigstore bundle: .cosign.bundle / .sigstore.json (same bundle, two names)

Release history

Every release, kept

38 releases and 8 pre-releases, 12 June – 2 November 2026

A release is never altered once published, so any version with an installer can be re-installed exactly as it shipped. Each release page lists every file that release was published with, the SHA-256 of each one recomputed on this server, and the full notes; Sigstore signatures cover 6.2.19 to 6.3.3 and 6.3.5 to 6.3.8 and Linux packages start at 6.3.0. 6.2.0 and 6.0.0-B4 are release notes only. Open one to see what it holds.

6.3 series

9 releases · 10 September – 2 November 2026 · Windows and Linux
  1. 6.3.8

    LatestSigned 2 November 202626 packages · schema 6108

    hMailServer 6.3.8 is a security release: it fixes vulnerabilities the project found in its own code, which between them reach every earlier version, back to 6.0.0's first beta.

  2. 6.3.5

    Signed 29 September 20263 packages · schema 6105

    hMailServer 6.3.5 was the first release built and signed by the project's GitLab CI pipeline; it is superseded by 6.3.6, which fixes security flaws in every earlier version, 6.3.5 included.

  3. 6.3.4

    Built 27 September 20263 packages · schema 6104

    The largest release this project has made, with a fix for a flaw by which a password could run code on a Windows server using JScript event scripts.

  4. 6.3.3

    Signed 15 September 20267 packages · schema 6040

    A message larger than 60,000 bytes sent with CHUNKING to Gmail, iCloud, Outlook.com or Postfix stalled after its first buffer and the remote timed out…

  5. 6.3.2

    Signed 13 September 20266 packages · schema 6038

    The webmail became a client people would choose, Kerberos single sign-on arrived on all three protocols, an auto-ban now reaches the operating system's firewall…

  6. 6.3.0

    Signed 10 September 20267 packages · schema 6031

    hMailServer runs on Linux. That is the whole of why this is 6.3 and not 6.2.29: a mail server that has been Windows-only since 2002 now builds, installs…

6.2 series

27 releases + 6 pre-releases · 14 June – 8 September 2026 · Windows
  1. 6.2.28

    Signed 8 September 20261 package · schema 6031

    The largest release of this fork so far, and three of its four headline features are things hMailServer has never had: the server can update itself…

  2. 6.2.27

    Signed 7 September 20261 package · schema 6031

    Two roadmap items that had been open since the roadmap was written, and one small schema step…

  3. 6.2.26

    Signed 6 September 20261 package · schema 6030

    The release to take if you run the built-in SQL Server Compact database: the 6.2.25 installer reported every upgrade of one as failed…

  4. 6.2.25

    Signed 6 September 20261 package · schema 6030

    Two days after 6.2.24, and the release to take if you use the built-in ACME client: 6.2.24 ends the service the moment a certificate has been issued, and at the start of every renewal (#93).

  5. 6.2.24

    Signed 4 September 20261 package · schema 6025

    The first stable release since 6.2.21. It is the code of 6.2.23 Alpha 2, cut the same day, plus NuGet lock files for the .NET tools and the CI changes that hold every restore…

  6. 6.2.23-alpha2

    Pre-releaseSigned 4 September 20261 package

    Pre-release. Not for production.

  7. 6.2.23-alpha1

    Pre-releaseSigned 21 August 20261 package · schema 6025

    Pre-release. Not for production. 83 commits, 345 files, roughly +27,000 / −4,100 lines since v6.2.22-pre6.

  8. 6.2.22-pre6

    Pre-releaseSigned 20 August 20261 package · schema 6022

    This is pre-alpha. It is gated — 1721 regression tests, nothing skipped — and the installer is smoke-tested on a throwaway runner…

  9. 6.2.22-pre3

    Pre-releaseSigned 19 August 20261 package · schema 6019

    A third pre-release of 6.2.22, fifteen commits on from pre2. Still a pre-release: it is gated but not yet run in anger anywhere.

  10. 6.2.22-pre2

    Pre-releaseSigned 18 August 20261 package · schema 6015

    A second pre-release of 6.2.22, fifteen commits on from pre1. Still a pre-release: it is gated but not yet run in anger anywhere.

  11. 6.2.22-pre1

    Pre-releaseSigned 16 August 20261 package · schema 6014

    This is a pre-release. It carries everything merged since 6.2.21 — two database schema steps, a Sieve filtering wave, the Microsoft 365 OAuth switch-over…

  12. 6.2.21

    Signed 16 August 20261 package

    Inbound mail from a Postfix relay could hang forever. If mail from a front-end MTA has ever stopped arriving with nothing in the log after 354, this release is the fix.

  13. 6.2.20

    Signed 15 August 20261 package

    If you tried to install 6.2.19 on a fresh machine and it failed or hung, this release is the fix.

  14. 6.2.19

    Signed 15 August 20261 package · schema 6011

    Fresh installations of 6.2.19 fail - the database creation breaks on the built-in (SQL CE) backend and most likely on MySQL…

  15. 6.2.18

    Built 12 August 20261 package

    6.2.17 bounded message acceptance, which was the mechanism behind #18. This release finishes the job on the delivery side, and fixes the one place where adding a bound made things worse.

  16. 6.2.17

    Built 12 August 20261 package · schema 6005

    This release identifies and fixes the cause of discussion #18 — mail relayed from Postfix / Proxmox Mail Gateway stalling after 354…

  17. 6.2.16

    Built 11 August 20261 package · schema 6005

    A patch release over 6.2.15, fixing one reported Control Panel defect.

  18. 6.2.15

    Built 11 August 20261 package · schema 6005

    A correctness release built around two themes: IMAP sequence sets now behave the way RFC 3501 defines them, and every file the server writes now has an owner…

  19. 6.2.14

    Built 11 August 20261 package · schema 6005

    A correctness and usability release.

  20. 6.2.13

    Built 11 August 20261 package · schema 6005

    A community-feedback bug-fix release.

  21. 6.2.12

    Built 10 August 20261 package · schema 6005

    The .NET modernization of the tooling is complete: every C# component in the product now targets .NET 8. No server-core changes; no database change (schema version 6005).

  22. 6.2.11

    Built 7 August 20261 package · schema 6005

    An accessibility fix for the Control Panel, plus the work that made the regression suite run in full for the first time.

  23. 6.2.10

    Built 7 August 20261 package · schema 6005

    A security and housekeeping release.

  24. 6.2.9

    Built 7 August 20261 package · schema 6005

    A follow-up to 6.2.8, completing what that release deliberately left out.

  25. 6.2.8

    Built 7 August 20261 package · schema 6001

    A Control Panel bug-fix release. Both defects made a healthy server look broken.

  26. 6.2.7

    Built 15 June 20261 package

    hMailServer 6.2.7 is a Control Panel usability release.

  27. 6.2.6

    Built 15 June 20261 package

    A Control Panel and installer polish release, with one new opt-in server protocol mode.

  28. 6.2.5

    Built 15 June 20261 package

    hMailServer 6.2.5 is a critical fix release.

  29. 6.2.4

    Built 15 June 20261 package

    A Control-Panel-focused release that completes the last functional-parity item from the classic Administrator.

  30. 6.2.3

    Built 15 June 20261 package

    This is the first server-focused release since 6.2.2 (which shipped Control Panel changes against an unchanged server).

  31. 6.2.2

    Released 14 June 20261 package

    This release pairs the v6.2.2 server with a substantially upgraded Control Panel (the modern .NET 8 admin app).

  32. 6.2.1

    Released 14 June 20261 package

    This release completes Track B4: deliverability and modern SMTP standards.

  33. 6.2.0

    Released 14 June 2026

    hMailServer 6.2.0 introduces the hMailServer Control Panel - a brand-new, modern desktop administration app - alongside the full 6.x server.

    Release notes only — no installer publishedNotes, checksums and signatures

6.1 series

1 release · 12 June 2026 · Windows
  1. 6.1.0

    Released 12 June 20261 package

    hMailServer 6.1.0 - a complete UI/UX modernization across the desktop Administrator, a brand-new web interface, and the installer.

6.0 series

1 release + 2 pre-releases · 12 June 2026 · Windows
  1. 6.0.0

    Released 12 June 20261 package

    hMailServer 6.0.0 (x64) - production release, build 4.

  2. 6.0.0-B4

    Pre-releaseReleased 12 June 2026

    Build 3 bundled VS2019-era (14.25) VC++ runtime DLLs app-local in Bin\, which the v145-built (14.51) hMailServer.exe loaded instead of the system runtimes…

    Release notes only — no installer publishedNotes, checksums and signatures
  3. 6.0.0-B1

    Pre-releaseReleased 12 June 20261 package

    Modernized hMailServer 6.0 - first regression-validated build.

Also published

Build inputs

Third-party binaries the build fetches instead of carrying in git. Each is the exact file that was committed until 11 September 2026, recorded by SHA-256 in hmailserver/docs/third-party-binaries.json, which is also where its provenance, licence and use are written down. build/get-installer-binaries.ps1 downloads these, verifies them against that manifest, and places them where the installer script expects them; the same script gathers the MSVC runtime from the build machine's Visual Studio. A release rather than a URL at the vendor, because two of the three have no stable first-party download left: Microsoft withdrew SQL Server Compact 4.0 SP1 from the Download Center, and 7-Zip's standalone console ships only inside a .7z archive that needs 7-Zip to open.

AssetSHA-256What it is
7za-19.00.exe8117e40ee7f824f63373a4f5625bb62749f69159d0c449b3ce2f35aad3b835497-Zip 19.00 standalone console, Igor Pavlov, LGPL-2.1-or-later; from https://www.7-zip.org/a/7z1900-extra.7z
mariadb-connector-c-3.4.9-win64-client.zipa23e96857e7e02fd26c9317638655c4d3da3f11d0ac2f40ae310842a5169cc8dMariaDB Connector/C 3.4.9 client (libmysql.dll) and its ten authentication plugins, MariaDB Corporation AB, LGPL-2.1-or-later; the per-file hashes are in the manifest
SSCERuntime_x64-ENU.msib2d2aba2102d0fa8915421b1e0b850f7c538983eed06e89c358cc2a0c578f958Microsoft SQL Server Compact 4.0 SP1 x64 runtime (MSI built 2012-04-06), redistributable under its licence; the installer's built-in database option

This release is immutable, like every release here: a changed or added input goes into build-inputs-2.

Every file in Build inputs

Full SHA-256 of each file as recomputed on this server, to compare with the manifest above.

FileWhat it isSizeSHA-256Signature
SSCERuntime_x64-ENU.msiWindows installer · x6410.1 MBb2d2aba2102d0fa8915421b1e0b850f7c538983eed06e89c358cc2a0c578f958 release notes—
7za-19.00.exeWindows installer1.1 MB8117e40ee7f824f63373a4f5625bb62749f69159d0c449b3ce2f35aad3b83549 release notes—
Progressiverobot-hmailserver-attestation-46764040.sigstore.jsonBuild attestationGitHub artifact attestation for the release, as a Sigstore bundle.3 KB4d58475f49eac111919c67a29bff14545c77990868799454dd6ce89a9533b19b—
mariadb-connector-c-3.4.9-win64-client.zipFile293 KBa23e96857e7e02fd26c9317638655c4d3da3f11d0ac2f40ae310842a5169cc8d—

Installed? The documentation takes it from here

Thirty-seven chapters written for first-time mail admins: DNS, certificates, anti-spam, backups, hardening and the REST API. Or let the maintainers run hMailServer for you.