hMailServer 6.2.13

Built 11 August 2026 6.2 series

This is not the current release. hMailServer 6.3.3 is the one to install unless you need this exact version.

Downloads for 6.2.13

Windows

Windows 10 (version 1607 or later) and Windows 11, or Windows Server 2016 and newer; 64-bit only. Run the installer as an administrator: it upgrades an installation older than this version in place, and it cannot go backwards — an older server refuses a database a newer one has upgraded, so back up the database and the data directory first. It is not Authenticode-signed, so Windows names an unknown publisher and SmartScreen warns before it will run it.

  • hMailServer-6.2.13-x64.exex64 · 71.8 MB
    Download
    SHA-2561e56b6ee4ac1…769a5d0c

What’s new in 6.2.13

A community-feedback bug-fix release. It resolves the issues testers reported on the forum against 6.2.11/6.2.12 and hardens the SMTP, IMAP and SpamAssassin paths against malformed input found while investigating them. No database change (schema version 6005).

Full release notes for 6.2.13 6 sections

Validated by the full regression suite: 1026 of 1026 passing, zero failures, against the rebuilt 6.2.13 service.

SMTP

  • Fixed a DATA stall when relaying from Postfix / Proxmox Mail Gateway. After 354 OK, send. the connection could hang until the sending MTA timed out ("timed out while sending end of data"), leaving a zero-byte spool file. The cause was a reverse-DNS (PTR) lookup performed on the network I/O thread while generating the Received header at the first flush: an internal relay whose address has no reverse zone stalled the whole session through DNS retries. The PTR lookup now runs on a worker thread started at connection time and header generation never waits on it. Direct sending was unaffected, which is why only relayed mail hung.
  • Robustness. A parse exception can no longer leave a connection permanently wedged (it retires the read and disconnects); message data pipelined in the same segment as DATA is consumed correctly; a rejected BDAT/CHUNKING command drains or cleanly terminates its in-flight payload instead of desyncing the session (matters for Exchange, which uses BDAT whenever CHUNKING is advertised); the EHLO SIZE keyword no longer overflows for very large limits; and TCP_NODELAY is set on every connection.

IMAP

  • Fixed an authenticated-user crash and an out-of-bounds read. A malformed partial-fetch range (for example BODY[]<0.-1> or BODY[TEXT]<-5.10>) could drive a near-SIZE_MAX allocation (crash and a server-wide cache flush) or read heap memory from before the buffer and send it to the client. The octet range is now clamped in the byte math and normalized in the parser, with a couple of response-format defects fixed alongside.
  • OnClientLogon now fires from every IMAP AUTHENTICATE mechanism (PLAIN, SCRAM-SHA-256, XOAUTH2/OAUTHBEARER), the same as LOGIN, POP3 and SMTP.

SpamAssassin

  • Fixed a hang, header corruption and message loss. A malformed or truncated spamd response could spin a core and hang the session indefinitely (a length that wrapped to a huge unsigned value drove an endless read loop with the timeout suppressed) and could write the raw SPAMD/… response header into the message. An empty response (Content-length: 0) could overwrite the message with a zero-byte file, and a mismatch between the anti-spam scan ceiling (256 MB) and the MIME parser limit (80 MB) could truncate very large messages. The client now parses the response header defensively, treats an early close as end-of-response, requires a positive length before replacing the message, and the scan ceiling is clamped to the parser limit. The original message is preserved on any SpamAssassin failure. A temp-file leak on the connection-test path was also fixed.

Upgrade & installer

  • DBUpdater now labels database versions 6002-6005 (they showed as "Unknown version") and prints the raw version rather than "Unknown" for any future gap.
  • A failed or cancelled database create/upgrade now propagates a real exit code up to a visible installer error instead of reporting success against a broken schema, and the tools no longer show modal dialogs under /silent.
  • Missing hm_settings rows self-heal on write instead of silently discarding the value; the 6001 upgrade insert is idempotent so a re-run is safe.
  • The installer keeps a user-customized EventHandlers.vbs across uninstall/reinstall, and the Control Panel script editor no longer saves empty text over the file after a failed load (and keeps a .bak).
  • The "Windows version too low" message now names the real requirement (Windows 10 1607 / Server 2016).

Control Panel

  • Diagnostics no longer reports every test as FAILED (it read two COM result properties by the wrong names and swallowed the error).
  • Restarting the service from the UI is now elevation-aware (a single UAC prompt when the session is not elevated), runs off the UI thread, and reports the actual error instead of an opaque COM message.

Build target

  • The server core and minidump helper, and the OpenSSL build recipe, now target Windows 10 1607 (_WIN32_WINNT 0x0A00) consistently, matching the installer's minimum-OS gate and the bundled libpq 18. OpenSSL stays on the 4.0 line (supported into 2028); the plan is to adopt 4.2 LTS when it ships.

Upgrading: in-place over any earlier hMailServer release; the database upgrades automatically (schema version 6005, unchanged from 6.2.x). Minimum OS is Windows 10 1607 / Server 2016, 64-bit.

Release facts

Version
6.2.13
Packages
1Windows, x86-64
Database schema
6005upgrades in place
Installer SHA-256
1e56b6ee4ac1…769a5d0chMailServer-6.2.13-x64.exe

Every file in 6.2.13

Full SHA-256 of each file as recomputed on this server. The SBOM is not needed to install; it lists every component in the build. Nothing in this release is signed — the signing workflow came later — so the hash above is this server’s own recomputation rather than a check against something the project signed.

FileWhat it isSizeSHA-256Signature
hMailServer-6.2.13-x64.exeWindows installer · x6471.8 MB1e56b6ee4ac1b6f63db8da3a1fb152b1fbb8d17e6f6cd185274c8904769a5d0c
hmailserver.spdx.jsonSBOM (SPDX)Every component in the build, in SPDX JSON.92 KB0ef6dbf0454a55351b2816dd4029033826e258bec84c3340435738b96951fc7b
hmailserver.cyclonedx.jsonSBOM (CycloneDX)The same inventory in CycloneDX JSON.48 KBfc60380ce0b03ab673aa8f7396a3e09a57755d6d3453c2538961e963b07908e3