You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Version bump to 6.2.12 (build 14) plus the README release notes.
The substance of this release is the completion of the .NET modernization
of the tooling: the last .NET Framework setup tools (DBSetup,
DBSetupQuick, DBUpdater, DataDirectorySynchronizer, Shared) are ported to
net8.0-windows against a checked-in COM interop wrapper, the unbuildable
VB6-era Migration tools are replaced by the supported Import Tool
(accounts from text files, mbox messages into per-file IMAP folders), the
installer makes the .NET 8 Desktop Runtime a server-component
prerequisite installed - with its exit code checked - before the database
tools run, and CI builds every C# project on every push. The test suite
moved to NUnit 4 via Dependabot's grouped update.
No server-core changes (the rebuild is the version stamp only). No
database change (schema version 6005).
Verified at 6.2.12:
- Server, tools, Control Panel and the regression harness all build
clean; the tools and Control Panel build with -warnaserror.
- Full regression suite against the rebuilt 6.2.12 service: 1026 of
1026 executed and passed, 0 failed. (TestSANotRunning required
restoring the documented Authenticated Users start/stop grant on the
SpamAssassinJAM service, which had been lost since the 6.2.11 run.)
- Import Tool verified end to end against the live server with both
CRLF and LF-only mbox files; automated UI walkthrough clean.
- DBUpdater /SilentIfOk and DBSetupQuick /silent exit 0 from the
merged Bin layout the installer creates.
- Installer compiles; binaries report 6.2.12 / 6.2.12.0, COM reports
6.2.12-B14.
Copy file name to clipboardExpand all lines: README.md
+56-1Lines changed: 56 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ hMailServer is an open source email server for Microsoft Windows, implementing S
5
5
6
6
This repository is a modernized fork of the original project (which is no longer maintained upstream). It has been brought up to date with a current toolchain, current cryptography, and the transport-security standards expected of a mail server in 2026. It is maintained by Christopher Holloway / [Progressive Robot Ltd](https://www.progressiverobot.com).
7
7
8
-
**Production status:** version **6.2.11** is released - [download the installer](https://github.com/Progressiverobot/hmailserver/releases/latest) (`hMailServer-6.2.11-x64.exe`). **6.2.11 fixes a Control Panel accessibility defect** - the alias list and the live log announced their CLR type name to screen readers instead of their content - and lands the work that made the regression suite run in full for the first time. 6.2.10 before it was a security release: fifteen COM methods returned `S_OK` on calls they had just refused, five of them handing an unauthorized caller an uninitialized out-parameter, and the two unmaintained administration front-ends (the PHP WebAdmin, which kept the administrator password in plaintext in a PHP session, and the retired Administrator) were removed. See *6.2.11* and *6.2.10* below. The server core is unchanged since 6.2.6 (opt-in IMAP4rev2, the Control Panel redesign and complete settings coverage). It is validated by the full regression suite: **1026 of 1026 tests passing, zero failures, zero inconclusive** - the complete suite, with live SpamAssassin and ClamAV (real EICAR detection), DMARC evaluation against live DNS, and TLS 1.2/1.3 handshakes end to end. Every test runs; nothing is skipped. The bundled administration GUI is the modern .NET 8 **Control Panel**.
8
+
**Production status:** version **6.2.12** is released - [download the installer](https://github.com/Progressiverobot/hmailserver/releases/latest) (`hMailServer-6.2.12-x64.exe`). **6.2.12 completes the .NET modernization of the tooling**: every C# tool now targets .NET 8 - the last .NET Framework setup tools (DBSetup, DBSetupQuick, DBUpdater, DataDirectorySynchronizer) are ported, the VB6-era migration tools are replaced by a supported **Import Tool** (accounts from text files, messages from mbox files), the installer makes the .NET 8 runtime a server prerequisite installed before the database tools run, and CI now builds every C# project on every PR. The test suite moved to NUnit 4. See *6.2.12* below. The server core is unchanged since 6.2.6 (opt-in IMAP4rev2, the Control Panel redesign and complete settings coverage). It is validated by the full regression suite: **1026 of 1026 tests passing, zero failures, zero inconclusive** - the complete suite, with live SpamAssassin and ClamAV (real EICAR detection), DMARC evaluation against live DNS, and TLS 1.2/1.3 handshakes end to end. Every test runs; nothing is skipped. The bundled administration GUI is the modern .NET 8 **Control Panel**.
9
9
10
10
What's new in 6.0
11
11
=================
@@ -83,6 +83,61 @@ change until the new settings are turned on.
83
83
84
84
* SPDX + CycloneDX SBOMs (Syft) attached to every release, Dependabot CVE alerts + grouped update PRs, and a dependency-review PR gate.
85
85
86
+
6.2.12
87
+
======
88
+
89
+
The .NET modernization of the tooling is complete: every C# component in the
90
+
product now targets .NET 8. No server-core changes; no database change
91
+
(schema version 6005).
92
+
93
+
***The setup tools are .NET 8.** DBSetup, DBSetupQuick, DBUpdater,
94
+
DataDirectorySynchronizer and the Shared library move from
95
+
.NET Framework 4.8.1 to SDK-style net8.0-windows. The COM API is consumed
96
+
through a checked-in tlbimp wrapper (`source/Tools/Interop/`), so the
97
+
tools build with plain `dotnet build` on any machine - no registered
98
+
typelib needed. Dialog metrics are pinned to the fonts the forms were
99
+
designed against, so nothing shifts visually. The silent command-line
100
+
contract the installer and the VM test runner depend on is unchanged.
101
+
102
+
***The VB6 migration tools are replaced by a supported Import Tool.** The
103
+
`source/Migration` folder held five wizards, none of which could be built
104
+
(their shared VB6 sources were never in the repository) and three of
105
+
which migrated from products dead for two decades (ArgoSoft, IMail,
106
+
Mercury). The two with lasting value return as one .NET 8 tool, shipped
107
+
under Addons: account import from comma-separated text files (now with
108
+
per-line validation instead of a crash) and mbox import into per-file
109
+
IMAP folders. The mbox importer streams files of any size, goes through
110
+
the supported COM API instead of the old tool's raw MySQL INSERTs, and
111
+
fixes every defect documented in the VB6 version - the silently dropped
112
+
last message, CRLF mailboxes parsing as one giant message, mboxrd
113
+
quoting, and SMTP dot-stuffing corrupting stored messages. Verified end
114
+
to end against a live server with both Unix (LF) and Windows (CRLF)
115
+
mailboxes.
116
+
117
+
***The installer treats the .NET 8 Desktop Runtime as a server
118
+
prerequisite.** It is installed - with its exit code actually checked -
119
+
before the database tools run, not only when the Control Panel component
120
+
is selected; the obsolete .NET Framework 4.5 gate is gone, and the
121
+
supported-OS floor is now Windows 10 1607, the .NET 8 runtime's own
122
+
minimum. The database tools ship as dotnet publish folders staged by the
123
+
new `build/build-tools.ps1`.
124
+
125
+
***CI now builds every C# project on every push and PR.** A new tools job
126
+
builds the tools solution with warnings-as-errors against the checked-in
127
+
interop wrapper. Previously only the Control Panel was built, which let
128
+
a dependency update break the test and tool projects invisibly.
129
+
130
+
***The test suite runs on NUnit 4** (4.6.1, adapter 6.2, console runner
131
+
3.22) via Dependabot's grouped update, with the 2,200+ classic assert
0 commit comments