Skip to content

Commit 0a716a8

Browse files
Release 6.2.12 - .NET 8 tools, Import Tool, installer hardening
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.
1 parent 2f388fd commit 0a716a8

10 files changed

Lines changed: 70 additions & 16 deletions

File tree

README.md

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ hMailServer is an open source email server for Microsoft Windows, implementing S
55

66
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).
77

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**.
99

1010
What's new in 6.0
1111
=================
@@ -83,6 +83,61 @@ change until the new settings are turned on.
8383

8484
* SPDX + CycloneDX SBOMs (Syft) attached to every release, Dependabot CVE alerts + grouped update PRs, and a dependency-review PR gate.
8585

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
132+
call sites kept compiling through NUnit 4.6's C# 14 extension members.
133+
The regression suite's local-address selection now probes for an address
134+
the server actually answers on instead of trusting interface enumeration
135+
order, which broke under a connected VPN.
136+
137+
* The changes were shaken down by an adversarial multi-agent review (12
138+
findings raised, 9 confirmed, all fixed before merge), and the release
139+
is validated by the full regression suite: 1026 of 1026 passing.
140+
86141
6.2.11
87142
======
88143

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[Setup]
2-
OutputBaseFilename=hMailServer-6.2.11-x64
3-
AppVerName=hMailServer 6.2.11-x64
2+
OutputBaseFilename=hMailServer-6.2.12-x64
3+
AppVerName=hMailServer 6.2.12-x64
44
ArchitecturesInstallIn64BitMode=x64
55
ArchitecturesAllowed=x64
6-
AppVersion=6.2.11
7-
VersionInfoVersion=6.2.11.0
6+
AppVersion=6.2.12
7+
VersionInfoVersion=6.2.12.0
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#pragma once
2-
#define HMAILSERVER_VERSION "6.2.11"
3-
#define HMAILSERVER_VERSION_NUMERIC 6,2,11,13
4-
#define HMAILSERVER_BUILD 13
5-
2+
#define HMAILSERVER_VERSION "6.2.12"
3+
#define HMAILSERVER_VERSION_NUMERIC 6,2,12,14
4+
#define HMAILSERVER_BUILD 14

hmailserver/source/Tools/ControlPanel/ControlPanel.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<RootNamespace>hMailServer.ControlPanel</RootNamespace>
1313
<ApplicationManifest>app.manifest</ApplicationManifest>
1414
<ApplicationIcon>app.ico</ApplicationIcon>
15-
<Version>6.2.11</Version>
15+
<Version>6.2.12</Version>
1616
<!-- MSBuild inserts the platform name into the output path for any
1717
platform other than AnyCPU, so building ControlPanel.sln (x64) and
1818
running `dotnet build ControlPanel.csproj` (AnyCPU) produce two

hmailserver/source/Tools/DBSetup/DBSetup.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
<RootNamespace>DBSetup</RootNamespace>
1919
<AssemblyName>DBSetup</AssemblyName>
2020
<ApplicationIcon>database_add.ico</ApplicationIcon>
21-
<Version>6.2.11</Version>
21+
<Version>6.2.12</Version>
2222
<Product>hMailServer Database Setup</Product>
2323
<Company>Progressive Robot Ltd</Company>
2424
<Copyright>Copyright (c) 2026 Christopher Holloway / Progressive Robot Ltd</Copyright>

hmailserver/source/Tools/DBSetupQuick/DBSetupQuick.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<ImplicitUsings>disable</ImplicitUsings>
1616
<RootNamespace>DBSetupQuick</RootNamespace>
1717
<AssemblyName>DBSetupQuick</AssemblyName>
18-
<Version>6.2.11</Version>
18+
<Version>6.2.12</Version>
1919
<Product>hMailServer Database Setup (quick)</Product>
2020
<Company>Progressive Robot Ltd</Company>
2121
<Copyright>Copyright (c) 2026 Christopher Holloway / Progressive Robot Ltd</Copyright>

hmailserver/source/Tools/DBUpdater/DBUpdater.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<RootNamespace>DBUpdater</RootNamespace>
1717
<AssemblyName>DBUpdater</AssemblyName>
1818
<ApplicationIcon>database_refresh.ico</ApplicationIcon>
19-
<Version>6.2.11</Version>
19+
<Version>6.2.12</Version>
2020
<Product>hMailServer Database Updater</Product>
2121
<Company>Progressive Robot Ltd</Company>
2222
<Copyright>Copyright (c) 2026 Christopher Holloway / Progressive Robot Ltd</Copyright>

hmailserver/source/Tools/DataDirectorySynchronizer/DataDirectorySynchronizer.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<RootNamespace>DataDirectorySynchronizer</RootNamespace>
1717
<AssemblyName>DataDirectorySynchronizer</AssemblyName>
1818
<ApplicationIcon>georectify.ico</ApplicationIcon>
19-
<Version>6.2.11</Version>
19+
<Version>6.2.12</Version>
2020
<Product>hMailServer Data Directory Synchronizer</Product>
2121
<Company>Progressive Robot Ltd</Company>
2222
<Copyright>Copyright (c) 2026 Christopher Holloway / Progressive Robot Ltd</Copyright>

hmailserver/source/Tools/ImportTool/ImportTool.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<ImplicitUsings>disable</ImplicitUsings>
1616
<RootNamespace>ImportTool</RootNamespace>
1717
<AssemblyName>ImportTool</AssemblyName>
18-
<Version>6.2.11</Version>
18+
<Version>6.2.12</Version>
1919
<Product>hMailServer Import Tool</Product>
2020
<Company>Progressive Robot Ltd</Company>
2121
<Copyright>Copyright (c) 2026 Christopher Holloway / Progressive Robot Ltd</Copyright>

hmailserver/source/Tools/Shared/Shared.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<ImplicitUsings>disable</ImplicitUsings>
1414
<RootNamespace>Shared</RootNamespace>
1515
<AssemblyName>Shared</AssemblyName>
16-
<Version>6.2.11</Version>
16+
<Version>6.2.12</Version>
1717
<Product>hMailServer Shared Tools Library</Product>
1818
<Company>Progressive Robot Ltd</Company>
1919
<Copyright>Copyright (c) 2026 Christopher Holloway / Progressive Robot Ltd</Copyright>

0 commit comments

Comments
 (0)