Skip to content

History / Glossary

Revisions

  • Nineteen of this wiki's own pages say of a [Settings] line edited in hMailServer.ini what RelocatingAnInstallation.md says with batch51 on master, 5e49abf06, and ServiceAccount.md has said since the tag v6.3.4: at the next start the stored value is used and HM5804 names the key, once, and the line is put back where the service may write the file, while under NT SERVICE\hMailServer, to which the file is read-only, as under the Linux packages' hmailserver user, the edit stays in the file (IniSettingStore::Synchronize), where they said without that condition that the line is put back, undone or restored: the APIs Reference, Backup and Restore, Capabilities and Configuration, Changes Since 6.2.10 (its 6.3.4 entry on the settings store and item 20 of its section 5), Control Panel Pages, Encryption and Certificates, the Glossary, Installing hMailServer's table of what writes each key, Monitoring and Health, Ports Reference, Routes and Relays, the Runbooks Digest, Security Hardening, Settings Overview, Settings Reference, The Control Panel, The REST API, Troubleshooting and Upgrading hMailServer. Where the same passages said that the server keeps the file's copy current, writes a deleted line back, brings an older line up to date or rewrites the line after a save, they now say so of a file the service may write, as step 9 of RelocatingAnInstallation.md now says of a save (IniSettingStore::WriteSetting) and ServiceAccount.md's table of the writes to hMailServer.INI says of every start, reinitialise and save: Settings Overview's flowchart has a step for a file the service may not write, where nothing is written, an edit is still named once and a reinitialise names the older lines in the application log where application logging is on; Settings Reference's section 4a says the same of each of its rules, and its rows for HM5803 and HM5804 say that a file the service may not write is not written at all, which the application log says, not as an error, and that HM5804 is said once there because the row records the edited line; and Upgrading hMailServer's note on rolling back from 6.3.4 to 6.3.3 says that the file's permissions under NT SERVICE\hMailServer, like a Linux package installation's unit, keep the server from writing the copy that note relies on. Where Changes Since 6.2.10, Control Panel Pages, the Control Panel Reference, Settings Overview and The Control Panel said that a Control Panel with no connection refuses rather than write a line or a file the server would undo, they say one whose edit the server would not use. The copies of documents that still say it without the condition - Contributing, Diagnosing Stalled Mail, Event Scripts, Migrating the Database Backend, The Update Feed and Warm Standby - follow their documents and are left as they are. Signed-off-by: Christopher Holloway <chris.holloway@progressiverobot.com>

    Christopher Holloway committed Oct 21, 2026
  • Six passages of this wiki's own text say what the documents say with batch51 on master, 5e49abf06, where they said otherwise: the Glossary's entry on CodeQL and Changes Since 6.2.10's note on the C++ analysis say that since 18 October 2026 CodeQL analyses the code of the copy on GitHub, GitHub's default setup at first and then the project's workflow .github/workflows/codeql.yml in its place, the Glossary adding that OpenSSF Scorecard's SAST check counts the workflow where it did not count the default setup, where they said that GitHub's own default setup, no workflow of the project's, analysed it; the Project Handbook's section 8 says that from batch51 .github/ also holds CODEOWNERS and workflows/codeql.yml, the two workflows of the project's that GitHub Actions runs, where it called Scorecard's the one; Installing hMailServer says that under NT SERVICE\hMailServer the service says in the application log at a reinitialise, where application logging is on, that the file's copy is not refreshed, as ServiceAccount.md now says, where it said so once a start, and that the file keeps from 6.3.6 the live update's trust beside PasswordPepper; Migration sends a move to another folder or drive to Relocating an Installation and one to a new machine to Backup and Restore, where it sent a new machine to Relocating an Installation, which covers another directory or drive; and Relocating an Installation's own paragraph on moving to new hardware says that from 6.3.6 the live update's trust is read from the file alone and no backup carries it, so that a site that sets it copies it to the new machine with the file (Backup.md), and its header says so. Signed-off-by: Christopher Holloway <chris.holloway@progressiverobot.com>

    Christopher Holloway committed Oct 21, 2026
  • The wiki's own pages say what the documents say with batch50 on master: Before You Install's table of databases has the login allowed to create the database - every privilege on its name on MySQL and MariaDB, dbcreator on SQL Server, CREATEDB on PostgreSQL - with DBSetup creating the database itself and refusing a name that exists, and its checklist an empty database made beforehand refused, where they asked for an empty database and a user that may create tables (MigratingDatabaseBackend.md, step 3); Installing on Linux that --create-database does over COM on Windows what DBSetup does, CreateExternalDatabase, DBSetupQuick creating only the built-in database, where it named DBSetupQuick; the Runbooks Digest, under its record of 4 September 2026, that since 19 October 2026 the document's step 3 runs DBSetup.exe and that DBSetupQuick creates only the built-in SQL Server Compact database when [Database] names no type, the step as it recorded it having made no usable database; the Upgrading Guide's backends table, this wiki's own, that DBUpdater runs the whole chain in one transaction on SQL Server and on SQL Server Compact, but for a chain on SQL Server Compact from a database older than 6072 that crosses 6107, which a failure from 6107 on leaves at 6106, and that on MySQL and MariaDB each step's DDL commits as it goes and the failed step may leave part of itself, where it had SQL Server Compact commit DDL as it executes and SQL Server transactional for most DDL (Upgrading.md); Monitoring and Health that Installation paths lists every path-shaped [Settings] and [Database] value but [Database] TlsCaFile, where it said every one (RelocatingAnInstallation.md); Security Hardening, The COM API and Scripting and section 5 of Changes since 6.2.10 that the rule action is "Run script function", as the Control Panel's action dialog lists it and EventScripts.md now names it, where they said "Run function", and Rules and Sieve that the mail flow rule action is "Add disclaimer", where it said "Add a disclaimer" (MailFlowRules.md); and the Glossary, Installing hMailServer, Upgrading hMailServer and the Project Handbook that SPDX and CycloneDX SBOMs come with every release from 6.2.3, the five earlier releases that carry an installer having a CycloneDX SBOM of it alone, made afterwards, where they said every release (README.md, SECURITY.md), that the release assets from 6.2.19 to 6.3.3 are signed with Sigstore but for the two SBOMs of 6.2.22-pre3, which carry no bundle, where they said every release from 6.2.19, or every asset up to 6.3.3, and that the releases up to 6.3.3 whose files GitLab has are re-published there byte for byte, 6.2.0 and 6.0.0-B4 being notes-only, where they said every release up to 6.3.3 (RegulatoryScope.md). Changes since 6.2.10's section 4h keeps "Run function" as 6.3.7's notes word it. Signed-off-by: Christopher Holloway <chris.holloway@progressiverobot.com>

    Christopher Holloway committed Oct 20, 2026
  • The wiki's own pages say what the documents say with batch49 on master: the Project Handbook's Scorecard record that the OpenSSF API serves the GitHub copy's score since 19 October 2026, published by the copy's workflow on its first run on master, where it said the API served none for the copy yet; Changes since 6.2.10 and the Settings Reference that nothing has run the Linux suite or the checkers on GitHub Actions since 18 September 2026, and that GitLab CI's checkers job runs every build/check-*.py since 26 September 2026, where they said GitHub Actions had not run for the project at all and the checkers were run by hand; the Glossary, Installing hMailServer and the Project Handbook that the releases before 6.3.1 stay unsigned because every release up to 6.3.3 is re-published on GitLab, and copied to GitHub since 18 October 2026, with its original files and signatures, byte for byte, where they gave a published release's immutability as the reason (SECURITY.md: the GitHub copies were published before the immutable-releases setting was switched on, and can be changed); the Glossary, Installing hMailServer, the Release Process, Upgrading hMailServer, the Settings Reference and Changes since 6.2.10 that GitHub's release workflow signed the releases from 6.2.19 to 6.3.3, where they said every release up to 6.3.3 (no release from 6.0.0-B1 to 6.2.18 carries a Sigstore bundle; SECURITY.md, Verifying a release); Regulatory Scope's Annex I table that the 6.3 line's support period is defined, security fixes until 30 September 2027 and, unless the maintainers write otherwise before then, no support from 1 October 2027, where it said no support period was defined; the Release Process's note at step 9 that since 6.3.6 static-analysis and semgrep fail the pipeline on a finding new to their baselines that master's exceptions file does not accept, while dependency-scan still does not, where it said all three may fail without failing it; and Contributing's paragraphs on the Service Desk and the board without the sentence that the address may change if the project moves to the group hmailserver, which it did on 29 September 2026, and without the clause that a scoped label is not exclusive on GitLab's Free tier, the group having been on GitLab's open-source plan since 13 October 2026. The re-check of the wiki brought to batch49 found these on 19 October 2026; the same shapes were swept on the wiki's own pages, and the copies of repository documents left as their documents have them. Signed-off-by: Christopher Holloway <chris.holloway@progressiverobot.com>

    Christopher Holloway committed Oct 19, 2026
  • Home, the sidebar, the footer and thirteen of this wiki's own pages say where the project is worked on and where to ask as the documents say it from batch49 - GitLab the one place the project is worked on, and github.com/RainbowWizard-coder/hMailServer its mirror since 18 October 2026, with Discussions and no Issues - where they said that GitHub had been unavailable to the project since 18 September 2026, sent a question to GitLab alone, called the original hMailServer unmaintained and gave the licence as AGPL-3.0; the suspension of the account Progressiverobot on 18 September 2026, and what did not run or answered 404 after it, stay as history. Home's Source and issues: the repository on GitLab, the one place the project is worked on, its mirror on GitHub with copies of the releases and of this wiki, Discussions and no Issues, a pull request there landed through GitLab, and the former account's addresses answering 404 since its suspension, where it said the project's GitHub addresses answered 404; a new Questions: an issue with the Question template, the Q&A of GitHub's Discussions or the forum, and a vulnerability privately, never in a public issue, a discussion or a pull request (SUPPORT.md, SECURITY.md and README.md from batch49). Its row for The Update Feed says since GitHub suspended the project's old account, where it said since GitHub went. The sidebar names the mirror and where a question goes, and the footer links the mirror. Troubleshooting 19.12: issues opened on GitLab alone, a question also in GitHub's Discussions or on the forum, the former project's issues and discussions still gone, a vulnerability reported privately, never in a public issue, a discussion or a pull request; and its row for an update feed answering 404 names the former account's API, where it said the project's GitHub account had been unavailable. The Glossary's footer names the mirror and the licence AGPL-3.0-or-later, and its CodeQL row says that GitHub's own CodeQL default setup analyses the copy on GitHub since 18 October 2026, no workflow of the project's, and that since 6.3.6 static-analysis (cppcheck and clang-tidy) and semgrep fail the pipeline of master, a batch* branch or a release tag on a finding new to their baselines that master's exceptions file does not accept, while dependency-scan (Trivy with OSV) blocks no pipeline and the release job reads its report, as README.md says, where it said only that the workflow had not run since the suspension and that the jobs in its place were not yet blocking. The Project Handbook's and the Runbooks Digest's status notes say that GitLab is the project's home and the one place it is worked on, the account Progressiverobot suspended and GitHub's copy GitLab's mirror, where they began "GitHub has been unavailable to the project since 18 September 2026"; the Handbook also says where a question and a security report go now - a security report never to a public issue, a discussion or a pull request - that sbom.yml and sign-release.yml ran once on 18 October 2026 on the copies of the releases up to 6.2.22-pre6 and have been disabled since, what .github/ holds from batch49, the third reporting route, and that the OpenSSF API, which on 19 October 2026 still served the old workflow's last result, of 18 September 2026, and none for the GitHub copy, is to carry the copy's score once its workflow has run on master (ContinuousIntegration.md from batch49). Changes Since 6.2.10's preamble and Capabilities and Configuration's quality-gates line say the same of the old workflows, where they said that none had run since GitHub became unavailable. Running in a Container and Installing on Linux say that the image was copied to ghcr.io/rainbowwizard-coder/hmailserver on 18 October 2026 and is private, and is not to be pulled from there, as ContainerImage.md words it from batch49, where Running in a Container said that the old account's registry had been unavailable and Installing on Linux that GitLab's registry held no image yet. Installing hMailServer says that every release from 6.0.0-B1 to 6.3.7 is also on GitHub's releases page, copied from GitLab byte for byte, where it called 6.3.4 the first release published on GitLab alone, and gives the licence as AGPL-3.0-or-later; Upgrading hMailServer names the suspended account's Releases API that a server from 6.2.28 to 6.3.3 reads, and the original hMailServer without "unmaintained"; Version History to 6.2.10 says the original project had gone quiet for years and has since resumed development separately, as README.md does from batch49, and What hMailServer Is and Is Not's About this fork says so too, and that Progressive Robot Ltd forked it in 2026 and released 6.0.0 on 12 June 2026, where it said that the original project stopped being maintained; and The COM API and Scripting names GitHub's private vulnerability reporting beside the confidential issue and the Service Desk address. Signed-off-by: Christopher Holloway <chris.holloway@progressiverobot.com>

    Christopher Holloway committed Oct 19, 2026
  • Installing hMailServer gives 6.3.7's check, as its header says it does, and it and seven more pages say that the project's GitLab CI has signed every release since 6.3.5 - 6.3.5 at the path the project began at, and from 6.3.6 at the group's, which the project moved to on 29 September 2026 - where they said, as 6.3.4 was made, that the pipeline was to sign the releases after it, had signed none yet and would follow the project to the path it was to move to. Installing hMailServer, section 4.1: a paragraph on checking 6.3.7 - made by its tag's GitLab pipeline, each of its sixty-two files signed with Sigstore and its bundle beside it, hmailserver-6.3.7.intoto.sigstore.json its SLSA provenance, no .sig; the installer checked against the SHA-256 the Download table of the release's notes gives it, dcae96bd75d6cae8e5a910d15940567067539ed99db5aeed40a815added4d85f for hMailServer-6.3.7-x64.exe, or against its bundle with cosign, the identity https://gitlab.com/hmailserver/hmailserver//.gitlab-ci.yml@refs/tags/v6.3.7 and the issuer https://gitlab.com, the project's id 86730559 read as Security Policy's Verifying a release says, then its Authenticode signature - where the page checked releases up to 6.3.3 and 6.3.4 alone; the releases after 6.3.4 are signed by the project's GitLab CI, a signer every server from 6.3.4 on has compiled in, and Upgrading hMailServer 18.4f says which servers install 6.3.7 by their live update, where they were to be signed and a 6.3.4 server's live update was to install them; and what a 6.3.4 server trusts is that pipeline at the path the project began at, where it signed 6.3.5, and at the group's, where it has signed every release from 6.3.6, there only with the project's id. The same stale sentence, swept: Settings Overview (the update feed's two signers), Release Process (Verifying what was published, this wiki's own section: the identities the releases from 6.3.5 carry), the Glossary (Sigstore), the Control Panel Reference (the Updates card), The Control Deck (the Update view: a 6.3.4 server's live update trusts the releases after it, where the signing job was written and had not yet run), the Project Handbook's section 10 and the Settings Reference's UpdateSourceRepository row (the three settings at the path the project began at keep a server to it, so that it refuses every release from 6.3.6, and since the move a server from 6.2.28 to 6.3.3 is upgraded by hand; the row's link to UpdateFeed.md now at the group's path). Home: the Atom feed's entries' ids are made from each release's tag alone, so that they do not change when a release is edited or the project moves, as UpdateFeed.md's The Atom feed says, where they were to keep their ids when the project moved into the group. The sections for one release - Changes Since 6.2.10's 4e and Upgrading hMailServer's 18.4c, written for 6.3.4 - and Capabilities and Configuration's paragraph marked as of 6.3.4 say it as 6.3.4 stood, and stay as written. Signed-off-by: Christopher Holloway <chris.holloway@progressiverobot.com>

    Christopher Holloway committed Oct 18, 2026
  • Every page's header says whether 6.3.7 is reflected in it, and none calls 6.3.6 the latest release, where thirty-seven headers still said "6.3.6, the latest release (6 October 2026...". The guide and reference pages brought up on 5 October 2026 to 6.3.6 say so with its date and schema, and that 6.3.7, the latest release (17 October 2026, schema 6108), is not yet reflected on them: Aliases, Lists and Public Folders, the APIs Reference, Compliance and eDiscovery, Connecting a Mail Client, Control Panel Pages, the Control Panel Reference, DNS for Your Domain, Encryption and Certificates, Encryption for People, How Email Works, Mail In to a Webhook, Mailing Lists, Message Storage, Migration, Monitoring and Health, Outbound Shaping, the Ports Reference, Profiles and Environment, Rooms and Equipment, Routes and Relays, Rules and Sieve, the Runbooks Digest, Security Hardening, Settings Overview, Sign-in and Identity, Stopping Spam, Stopping Viruses, The Control Deck, The Control Panel, The REST API, The Webmail, Troubleshooting, What hMailServer Is and Is Not and Your First Domain and Mailbox. Backup and Restore says that 6.3.7 is reflected only in the release a failed full restore is made again on, Capabilities and Configuration only in the releases the release jobs have made, and the Settings Reference that its keys were last re-checked at v6.3.6, where its re-check of 5 October 2026 called v6.3.6 the latest release. The COM API and Scripting and the Glossary, whose headers said nothing of a release after 6.3.4, say that 6.3.7 is not yet reflected, the Glossary that its stamp names it; Version History to 6.2.10 that its history ends at 6.2.10 and what came after, up to 6.3.7, is in Changes Since 6.2.10; and the Project Handbook that its status note, and what sections 7, 8, 9 and 11 say of how a change lands, who can approve it, which runners run what and which releases the release jobs have made, are brought up to the tree at 6.3.7, the rest not yet, and that 6.3.7, published on 17 October 2026, was the first of the security releases that go on until 30 September 2027. Signed-off-by: Christopher Holloway <chris.holloway@progressiverobot.com>

    Christopher Holloway committed Oct 18, 2026
  • The release record and the pages on upgrading and installing say what 6.3.7 is - build 46 at schema 6108, which it leaves as 6.3.6 has it, the first security release made while releases pause, tagged and published on 17 October 2026 at the group's path, the same sixty-two files - and how each kind of server reaches it, and Home, the footer, the sidebar and the Glossary name it as the latest release, where they named 6.3.6. Changes Since 6.2.10: the timeline's rows for 6.3.5, 6.3.6 and 6.3.7, 6.3.4's row no longer marked the latest, with the tag pipeline's gates for 6.3.7 (windows-gate on bench150, 2,794 tests, 2,732 passed, 0 failed, 62 skipped; windows-gate-s1vm on S1-WINBENCH, 1,652 tests, 1,634 passed, 0 failed, 18 skipped; linux-suite, 2,652 tests, 2,284 passed, 0 failed, 368 skipped) and the installer smoke test (an upgrade from 6.3.6, 98 checks, and a new installation, 64, none failed); 6.3.7's stamp; section 2 to 6108, and 6.3.7 adding no step; and a section 4h for 6.3.7 - the files and their bundles (160 links), the x64 installer's SHA-256, the container image and its tags, who installs the release by the live update, the flaws fixed with the five identifiers GitLab has assigned and "CVE requested" for the twelve requests still queued, the hardening beside them, the three reports from outside, the four cases of the program folder's permissions not fixed in this release, the thirty-three items of "What changes on upgrade without a switch" in the CHANGELOG's numbering, and what else 6.3.7 carries; section 5's heading points at it, and the CHANGELOG pointer names 6.3.7's section. Upgrading hMailServer: 18.1 gives 6.3.7's schema, 6108, where it gave 6.3.4's 6104 as the current release's; the path's chart and table gain 6.3.5, 6.3.6 and 6.3.7, with the count of steps from each older version to 6108; 18.4's download, its check and the version About shows are 6.3.7's; a section 18.4f for upgrading to 6.3.7, in the release notes' order (the backup and no schema step; the live update's routes from 6.3.6, from 6.3.4 and 6.3.5 and from older versions; the three leftover trust settings; the install by hand; the container; what may need doing before the upgrade; the .NET 10 runtime an upgraded server keeps; what 6.3.7 does not fix; the Control Panel's moved pages); and 18.7's Updates page and the refusal of every release after 6.3.6 by the three leftover settings. Home: the latest release, the download's check, the Current release, Database schema and Regression suite rows and the Changes Since 6.2.10 row. Installing hMailServer: the download link's release, and the program folder, Bin and ControlPanel that /ProtectFolders hardens from 6.3.7. Installing on Linux: 6.3.7's files and schema, and the update applied by the helper of the version it replaces - 6.3.6's helper applies 6.3.7 - where it said so of 6.3.6. Before You Install and Running in a Container: 6.3.7's files and image, and the registry, which held no image when that page's note was written. Each page's header says it was brought up on 18 October 2026 to 6.3.7 for what 6.3.7 changes on it, or what of 6.3.7 is not yet reflected. Signed-off-by: Christopher Holloway <chris.holloway@progressiverobot.com>

    Christopher Holloway committed Oct 18, 2026
  • The release record and the pages on upgrading and installing say what 6.3.6 is - build 45 at schema 6108, published 6 October 2026, signed at the group's path, the last release for the time being - and what an upgrade from 6.3.5 needs. Changes Since 6.2.10: section 2's schema table gains the steps 6104 to 6105, 6105 to 6106, 6106 to 6107 and 6107 to 6108; a section 4f for 6.3.5 (build 44, schema 6105, the first release the tag's pipeline made, its five items) and a section 4g for 6.3.6 - the flaws fixed, with the identifier GitLab has assigned to each or "CVE requested" where the request was still queued, the hardening beside them, the forty-six items of "What changes on upgrade without a switch" in the CHANGELOG's numbering, and what else changes in Operations; section 5's heading points at them. The libraries at the tag (OpenSSL 4.0.3, PostgreSQL 18.6's libpq), days to keep -1 for a move, and the AArch64 packages 6.3.6 carries again. Upgrading hMailServer: 18.2a's step table, 18.4d (upgrading to 6.3.5) and 18.4e (upgrading to 6.3.6, in the release notes' order: the backup and the three one-way steps; DANE and a resolver that strips DNSSEC; the outbound TLS deferrals; days to keep; COM; the administrator's commands, the service account and the installer; the live update's trust and the three leftover settings; the by-hand install under NT SERVICE\hMailServer; Linux by the package manager; the reverse proxy and Host; port 25, the URI lists, ManageSieve, IP addresses in text and the auto-ban across a stop; the webmail's S/MIME certificates; an account's retention; the full restore; the Compose file, the monitor sentence and tlds.txt); 18.5 clears the three leftover trust settings before the update; 18.6 has the installer's exit codes 10 and 11 and the Linux helper's rule. Home: the latest release, the downloads, the Current release and Platform rows. The footer, the sidebar and the Glossary: the stamp. Installing hMailServer: /ProtectFolders at every installation and upgrade, the grant through a junction the administrators control and /GrantServiceAccess's exit code 7, --grant-database-login, the program folder's folders private, a new installation set up with no window; the download link's release. Installing on Linux: 6.3.6's packages for both architectures and each supported distribution release, the version-less download links, the AppImage's folders made 0700, the schema line, the packages' requirements and licence files, the .rpm's character-set converters, a store command run as root, --check-config's character sets, tlds.txt gone, the backup and event logs in UTF-8, the live update helper's --unit and --image and the copies it installs from, the drain left on a refused request (HM7151), the auto-ban after a stop, and the AArch64 row. Before You Install: what 6.3.6 carries, libpq 18.6, the pre-flight line. Running in a Container: the image at the group's registry path and its 6.3.6 tag, PostgreSQL 18 at /var/lib/postgresql in the Compose file, the container's update check, HM_DB_WAIT_SECONDS. Each page's header says it was brought up on 5 October 2026 to 6.3.6 for what 6.3.6 changes on it. Signed-off-by: Christopher Holloway <chris.holloway@progressiverobot.com>

    Christopher Holloway committed Oct 5, 2026
  • Every link to the project points at its address in the group, gitlab.com/hmailserver/hmailserver, where it has been since 29 September 2026; the identities 6.3.5 was signed with, and the setting row that lists both paths, keep the path the project began at. The project's path in all 63 pages that linked it (548 links), 6.3.6 being the first release made at the group's path. Left as they were: the seven signing identities https://gitlab.com/Progressiverobot/hmailserver//.gitlab-ci.yml@refs/tags/v... (Release Process, Security Policy, The Update Feed, and the UpdateSigningIdentity row of Settings Reference), which name what 6.3.5 was signed as; and the UpdateSourceRepository row of Settings Reference, which lists both paths on purpose. The container registry's name is corrected with the container page. Signed-off-by: Christopher Holloway <chris.holloway@progressiverobot.com>

    Christopher Holloway committed Oct 5, 2026
  • The wiki is brought up to the published release: 6.3.4 is the signed tag v6.3.4 at 51e2dbda0, published on GitLab on 27 September 2026 (02:37:56 UTC), not 8adce850a of 26 September, where the tag was first made and whose release gate failed. Every page that named 8adce850a as the tag or the release names 51e2dbda0, and every page that dated the release 26 September dates it 27 September: the footer, the sidebar, the page headers, the landing page's Current release, the release timeline's row and picture, section 4e's heading. Each fact those pages took from 8adce850a was checked at 51e2dbda0: the commits between the two change 42 files, whose only documents are CHANGELOG.md, BrandLogos.md, OpenPGP.md and SecretsAtRest.md, none of which a page copies, and which include none of Constants.h, Version.h, formMain.cs, the create scripts, IniFileSettings.cpp, SettingsDefaults.h, the IDL, the Control Panel or .gitlab/allowed_signers, so every file and line cited at the tag holds. Where a page said it read the tag on 26 September, it says it read 8adce850a and that what it read is the same at the tag. The suite has 3,811 [Test] attributes at the tag, not 3,809 (the fixes add two tests); twelve places say so. Changes Since 6.2.10 gains, in batch 40, what the release gate found and the eleven fixes: three change tests alone; of the other eight, three fix what 6.3.3 did too - a relay that refused the OAuth2 login got the server's token into the bounce and the logs (open since 6.2.22-pre1), a rule's forward, copy, reply or notice and an account's forwarding could wait a minute in the queue, and IMAP LIST and LSUB took a literal's length for the pattern - and five fix code new in 6.3.4 (sealed mail and an unnamed part, a closed key's FETCH refusal logged as a critical error, the help desk's password reset read as bytes, the logo and key-directory holds, an alert's encoded Subject over 76 characters). The gate table and the timeline give the re-run on 51e2dbda0 as the logs have it: 2,349 on the first bench (2,252 passed, 0 failed, 97 skipped) and 1,462 on the second (1,446 passed, 0 failed, 16 skipped), the 71 live-update tests elevated, all passed, and the Linux suite on the packaged binary, 2,013 tests, 1,562 passed, 0 failed, 451 skipped (results/b40full3 on linix); the database upgrade gates, the security scans, the fuzzers and the installer smoke test, 65 of 65. The JScript flaw is CVE-2026-100741 (CVSS 3.1 9.8), and the project's issue #43 is public: Security Hardening 17.11, the scripting page, the changes, the capabilities and the API reference name them. The project's download links work (the site has served HTTPS since 26 September; on 27 September they led to 6.3.4's files), so Installing on Linux and Running in a Container no longer say they work once it does. The copies of SECURITY.md and CONTRIBUTING.md give the day GitLab published the release, and the security policy's copy counts the 455 findings .gitlab/security-exceptions.yml accepts at the tag - the 169 of the SAST triage and the 286 that held the release scan - where the repository document still says 169; each header says where the copy differs. Three places said no pipeline had run on the fixed tree; one has, the schedule of 27 September 2026 on master 6bc09509d, which ran the update feed's pages and package-repos jobs alone, and they say so.

    Christopher Holloway committed Sep 27, 2026
  • The wiki is brought up to the release itself, the signed tag v6.3.4 at 8adce850a: what it said of 6.3.4 had been read from master 92b8f9f63, which the tag's last batch, batch40, follows. Schema 6104, not 6103: 6.3.4 is sixty-four steps from 6.3.3's 6040, the last, 6103 to 6104, adding hm_fetchaccounts.faorigin (Constants.h:1224, formMain.cs:314 and the three create scripts at the tag); every header, table, count and diagram that gave 6103 as 6.3.4's schema says 6104, the upgrade table's step counts are each one more, the step tables gain the 6104 row, and where 6103 means the secrets-at-rest step it stays. No page calls 92b8f9f63 the release or the tree 6.3.4 was cut from any more: a page checked against it says so and that the tag adds a last batch, and a page that copies a repository document the tag leaves as it was says the document is the same at the tag. The copies of repository documents batch40 changes are brought up to the tag, hunk by hunk from the version each copy had reached, their own additions kept: Security Policy (the SSH-signed sums of a release made by hand and the two commands that check a download, an SBOM for every compiled file, a release held by its security scans, secrets refused before they are pushed; its note no longer says the document calls 6.3.3 the latest), Release Process (A release made by hand, the security gate, the SBOM jobs), Upgrading Guide (the installer's HM_ADMIN_PASSWORD, the named lock on MySQL and MariaDB, the probe that stops an upgrade on too old a server at 6041 and the repair of a half-done one), Contributing, Governance (rebuilt on the tag's document, which gives the GitLab roles the owner set on 26 September 2026; the map and the note on code-signing material kept), Assurance Case, Regulatory Scope, Third-Party Binaries, Fuzzing, Migrating the Database Backend and Regression Test Environment. The installer's password handling as the tag has it: the password page is skipped for HM_ADMIN_PASSWORD as for /adminpassword, the database step hands the password (or the live update's token, as token:<hex>) to DBSetupQuick and DBSetup in HM_ADMIN_PASSWORD and DBSetupQuick to DBUpdater the same way, never on a command line, the switch table has the variable, and the unattended upgrade takes either (Installing hMailServer, Upgrading hMailServer 18.4a). How to verify a download: 6.3.4's hmailserver-6.3.4-SHA256SUMS.txt and its .sig, checked with ssh-keygen -Y verify against .gitlab/allowed_signers and sha256sum -c, as SECURITY.md at the tag gives them, and each installer's and package's own SBOM (Installing hMailServer 4.1, Installing on Linux, Upgrading hMailServer 18.4 and 18.4c, home, Release Process, Project Handbook, Troubleshooting, Glossary, Assurance Case, Regulatory Scope). The /download/ links no longer wait on issue #30: the feed's site has had its certificate since 26 September 2026. Changes Since 6.2.10 gains batch 40 in section 4e (the audit before the release, GitLab's SAST and the release gate, the installer's password, the SBOMs and signed sums, the stable download links, the release chain and landing through merge requests, what the first pipeline found, Windows on ARM compiled), items 47 to 51 in section 5 (reserved domain names, a one-time code taken once, the outbound relay's OAuth2 token over TLS only, the fetchers and schema 6104, a pre-6.3.4 hash of a password above U+00FF refused), SQLOLEDB in item 38, the 6041 probe in item 36, and the installer's own PBKDF2 in item 39. Also what the tag makes false elsewhere: the suite has 3,809 [Test] attributes, not 3,698; hmailserver/docs holds 105 documents; Windows on ARM compiles and has never run, where it was "not built"; IMAP offers STARTTLS only before sign-in and TLS and COMPRESS=DEFLATE only after sign-in (Capabilities and Configuration); a parent-domain passkey relying party needs passkey_allowed_origins (Sign-in and Identity); the Settings Reference counts 193 hm_settings rows with PasskeyAllowedOrigins and WebPushLoopbackHttpForTests; and the Linux suite's CI job first ran in the pipeline of 26 September 2026 rather than never.

    Christopher Holloway committed Sep 26, 2026
  • Glossary: the Sigstore entry names the group path the live update trusts beside the project's present one, as the update pages do since the last commit: a 6.3.4 server trusts the GitLab pipeline at Progressiverobot/hmailserver and at hmailserver/hmailserver, the group the project is to move to, where the certificate must carry the project's id.

    Christopher Holloway committed Sep 26, 2026
  • What the check of the merged wiki found, put right. The landing page counted 61 pages, 34 guides and 'the other 60', and listed none of the four pages written for 6.3.4: it counts 65, 38 and 64, and Message Storage, Compliance and eDiscovery, Rooms and Equipment and Mail In to a Webhook have their rows where the sidebar groups them. Twelve sentences named the next release as 6.3.5; each now says the releases after 6.3.4, since nothing after 6.3.4 has a number yet. Installing on Linux said the AppImages began in 6.3.2, where the GitLab releases of 6.3.0 and 6.3.1 carry both of them. Capabilities and Configuration gave 23 per-account tables as today's count, where AccountStores.cpp declares 62 in 6.3.4, 24 carried and 38 exceptions; the old figures stay, labelled with 3233b0cc4. The Settings Reference counted 26 bootstrap keys, where build/ini-settings-baseline.txt has 29. And Stopping Spam said the quarantine digest needs its domain's switch and hour, when an account may hold a value of its own for both (EffectiveSetting.cpp, QuarantineDigestTask.cpp).

    Christopher Holloway committed Sep 26, 2026
  • What the check of the wiki's 6.3.4 pages found, read against 92b8f9f63: the compiled-in security.txt Policy URL has named SECURITY.md on GitLab since commit 9660893f1, so the APIs Reference no longer says it points at GitHub and that moving it is not done; the Runbooks Digest no longer says .github/SECURITY.md exists. No job on the project's own runners had run when 6.3.4 was made, and the fuzz job waits for the owner's schedule, so the home page, the gate table, the CI entry and the capabilities page say the Linux suite and the fuzzing are defined there and were run by hand, and the old nightly-fuzzing entry says it stopped with the GitHub account. DeckParity's census reads 586 routes, 258 of them writes, in 6.3.4, not 553 and 243. Roles cover 27 permissions, not 24. A backup carries an account's own stores, not everything an account has: passkeys, shares, recoverable and expiring mail, IMAP annotations and the out-of-office memory stay out, as AccountStores.cpp says. --decompress goes with --compress-store; the PST reader reports codes 7550 to 7553, and the administrator copies the file in; a spam trap bans the connecting address and blocks the envelope sender; a shaping wait spares retries only while the message is within its retry schedule; the quarantine digest is off until a domain or an account turns it on. /Register no longer uses ServiceAccountName and ServiceAccountPassword, which are still read rather than retired, and under the virtual account an administrator downloads the installer from the release page and checks its Authenticode signature rather than running the copy the server downloaded. Settings Reference section 17 counts its server-written rows as seven, and three labels that still said 'in the tree' say 6.3.4. The one piped wiki link whose text differed from its page becomes a plain Markdown link.

    Christopher Holloway committed Sep 26, 2026
  • The reference pages, the figures and the release notes now describe 6.3.4, the latest release, published on 26 September 2026 at schema 6103, read from 92b8f9f63, the tree it was cut from. What the pages called the tree after 6.3.3, not yet released, is in 6.3.4 and is labelled so, and what landed after master 540347500 is added as 6.3.4's. Changes Since 6.2.10 gains 6.3.4 as a release: its row in the timeline and the picture, its gate size (3,698 tests), the seven schema steps 6097 to 6103 with what each script does, the four steps that deserve planning (6101 on hm_messages and 6102, which rebuilds every MySQL and MariaDB table, beside 6025 and 6030), the upgrading note, section 4e retitled as New in 6.3.4 with a new part for batches 34 to 39 - eDiscovery, storage compression and de-duplication, mailbox encryption at rest, mail in to a webhook, rooms and equipment, utf8mb4, secrets at rest, the JScript escaping fix, event scripts on Linux in QuickJS, PST import and its reader process, SNMP, secure defaults and the service account, database TLS, object storage, the update feed off GitHub and the Updates folders, address erasure, the scan fixes and 7-Zip 26.03, the IMAP fixes, the webmail at 100,000 messages, the load generator, Windows on ARM and the CI on the project's own runners, each with its schema step, its commits and its repository document - and eleven more behaviour changes without a switch (items 36 to 46). Windows on ARM, the published numbers and the webmail's timings are said to be written, empty and unmeasured, as they are. The landing page and the footer stamp 6.3.4 as the latest release; the figures are recounted from 92b8f9f63: 65 Control Panel pages, 441 OpenAPI paths and 621 operations, 40 Deck views and DeckParity.md's 458 of 466, 3,698 [Test] attributes. The download line says 6.3.4 has x86-64 packages only and points the AArch64 packages and the AppImage at 6.3.3's release, and the PKGBUILD's GitHub source is named for what it is. The APIs Reference and The REST API gain the 24 paths added after 540347500 (nine for eDiscovery, seven for the inbound webhooks, four for mailbox encryption at rest, the booking policy, the store's two and the webmail's bulk action) and the routes that answer differently; The COM API and Scripting gains Settings.MessageStoreCompression, MessageStoreDedupMinKB, MessageStoreStatus and Account.Kind, what a COM change to a shared configuration object now does (a copy, in effect at Save(), commit 15cfff25d), the JScript escaping fix of 5a3de9001 and what an administrator with a JScript EventHandlers.js must do (a rule's Run function name a plain identifier), and event scripts on Linux in JavaScript, with what a handler cannot reach. Settings Overview and Settings Reference gain the 27 hm_settings rows of 6.3.4 (191 in all), [Database] TlsMode and TlsCaFile, [Security] StoredSecretsKey and the sealed secrets, and ServiceAccountName no longer used by /Register. Ports Reference gains the SNMP agent, the secure defaults a new installation's listeners get, and the outbound connections 6.3.4 adds. Upgrading hMailServer gains 18.4c: every server installs 6.3.4 by hand, since it carries no Sigstore bundle; the UpdateFeedUrl line for 6.2.28 to 6.3.3; the slow steps and what 6102 needs; what an upgrade keeps. Capabilities and Configuration, the Glossary (eDiscovery and legal hold, object store, sealed secret, stored-secrets key and the rest) and the Runbooks Digest (the nineteen new documents) are brought up to the same tree.

    Christopher Holloway committed Sep 26, 2026
  • The reference pages that name GitHub because the code still does now say, beside each such fact, that GitHub is unavailable and that moving it off GitHub is planned roadmap work, not yet done. The update check's default feed is api.github.com and has answered 404 since 18 September 2026 (Settings Reference, Settings Overview, The REST API, APIs Reference); the three signing-trust defaults name GitHub's release workflow and token service, which only GitHub Actions can issue, so no release after 6.3.3 can carry that identity (Settings Reference, Settings Overview, the Glossary's Sigstore row); and the Policy URL compiled into the served security.txt is a GitHub address (APIs Reference). Each was checked against master 540347500: UpdateChecker.cpp's STABLE_FEED and PRERELEASE_FEED, SigstoreVerifier.cpp's three constants and WebServicesServer.cpp's policy URL are still GitHub's. The Glossary's CodeQL row is put in the past tense and says nothing runs it on GitLab yet.

    Christopher Holloway committed Sep 24, 2026
  • The Glossary gains the words the tree after 6.3.3 brought, each saying where it is met and labelled as in the tree after 6.3.3 and not yet released: role, passkey, OpenID Connect, SAML, SCIM and recovery code; mail flow rule, sensitive content, impersonation protection, compromised-account detection, restricted delivery and sandbox; journaling, masked and send-as addresses, the directory, message recall, the list manager, VERP, OpenPGP and its Web Key Directory, protected messages, zero-access mailboxes, the S/MIME authority, gateway encryption, outbound shaping, IP warm-up and the send API; and the settings store, the applies mark, setting levels, environment names, profiles and the drain. Four entries that said the opposite of the tree are corrected: the Control Deck is no longer read-only, the schema version is 6040 in 6.3.3 and 6096 after it, the regression gate is 2,302 tests in 6.3.3 and 3,390 after it, and CodeQL's C++ analysis also ran on pull requests from 18 September, on GitHub Actions, which has not run for the project since that day. The Sigstore entry says that every release up to 6.3.3 was signed through that identity and that the live update still expects it, and the footer names 6.3.3. Settings that are rows of hm_settings are written in code, not in the bold the page keeps for hMailServer.ini keys.

    Christopher Holloway committed Sep 24, 2026
  • The wiki's links move from GitHub to GitLab, where the project has lived since 22 September 2026. GitHub suspended the account on 18 September and every one of the project's GitHub addresses answers 404, so the download links, the source links, the security route, the support route and the "report an error" link all led nowhere. Every link to a file in the repository now opens it on GitLab, and the four community files that moved to the repository root on master 540347500 - CONTRIBUTING.md, SECURITY.md, SUPPORT.md and CODE_OF_CONDUCT.md - are linked there, which also mends the seven links to a root SECURITY.md that did not exist when they were written. The download links open the latest GitLab release, and the installer has a link that always fetches the latest one. A private report goes to a GitLab confidential issue or the project's Service Desk address, a question is an issue with the Question template because GitLab has no Discussions, and a reader who wants to hear of releases is told how to watch the project on GitLab. The Project Handbook, written against GitHub on 4 September, says that its GitHub process is the project as it was then. The GitHub facts that stay are facts about the product, and each now says what is true of it: the update feed the server reads by default, which answers 404, so a check fails with "The update feed answered HTTP 404." until UpdateFeedUrl names another feed; the Sigstore identity and issuer that signed every release up to 6.3.3, which verify those files wherever they are hosted and which the verifier's defaults still name, so a release signed anywhere else is refused unless the three settings are changed; and the two GitHub addresses compiled into the product, the Policy line of the security.txt the server serves and the Control Panel's About link. Every GitHub issue, discussion and pull-request number written with a hash is now written in words - "GitHub issue 114", "GitHub discussion 18", "upstream PR 602" - with the kind the repository's CHANGELOG gives each number, because GitLab turns a hash and a number into a link to its own issue of that number, which is something else. The one maintainer handle left in running text is in code, and the webmail's mentions no longer read as a GitLab user. Four things GitLab rendered wrongly are put right. The Stopping Spam link to Routes and Relays was split by a line break and led to a page that does not exist. The Fuzzing page's two repository-relative links resolved inside the wiki; they open the fuzz folder and its regression README on GitLab. Placeholders written outside code, such as <host:port>, <addr> and <culture>, were read as HTML and dropped or turned into links; they are in code now. And the Assurance Case's eight section headings began "1. " above a setext rule, which CommonMark reads as a list and a thematic break, so its contents links had nothing to land on; they are ATX headings with the ids those links name.

    Christopher Holloway committed Sep 24, 2026
  • 6.3.1 is the current release, and the installer is Authenticode-signed from it: the footer and the landing page say 6.3.1, and the six pages that said the installer carries no Authenticode signature say what changed on 11 September 2026 and what did not (SmartScreen, and every release before it)

    @chrisholloway5 chrisholloway5 committed Sep 11, 2026
  • The wiki rewritten in depth: 141 diagrams drawn from the code, every reference page made exhaustive, and twenty-one defaults corrected that no page had ever stated The wiki was accurate after this morning's sweep and thin. This is the depth pass the owner asked for: every page read against the code again, every reference page completed, and a diagram wherever a diagram says it better than a paragraph. 141 Mermaid diagrams across 49 pages, each drawn from the handler rather than from memory: the SMTP submission sequence with the checks in the order ProtocolMAIL_ and ProtocolRCPT_ actually run them, the IMAP session state machine from the per-command authentication guards, the DMARC evaluation, the delivery pipeline and its retry arithmetic, the ACME renewal state machine, the spam decision from connection to delivery, the schema chain, the component and threading models of the whole server, the CI workflows and what each one gates, the release draft-sign-publish flow, and a map of the journeys through the wiki itself on the landing page. The reference pages are now exhaustive rather than representative: every route with its method, authentication, request and response shape and its error codes; every [Settings] key with its default, its effect and whether it needs a restart; every port with the key that opens it; every rule criterion and action; every Sieve extension the server advertises; every metric the listener exposes. Twenty-one facts were wrong or absent, and each is corrected against the code rather than adjusted. The ones that will save somebody an afternoon: IMAP SASL PLAIN and SCRAM are not advertised on a default install, which looks exactly like a client bug; SMTP AUTH PLAIN is off by default too; DMARC checking is on while SPF and DKIM as scored tests are off, and the DMARC test evaluates both itself regardless; the seeded DNSBL and SURBL servers are inactive; a new mailbox contains INBOX and nothing else, which is the real cause of the classic missing Sent folder; MTA-STS hosting and autoconfiguration default on while both web-service ports default to 0, so the shipped default is features on with nothing listening; and TLS-RPT and DMARC report sending are inert until their From address is set, with each completed day discarded unsent. Eleven screenshots are named as wanted, with what each should show. The existing images are from a 6.2.10-era build and the pages say so where it matters.

    @chrisholloway5 chrisholloway5 committed Sep 8, 2026
  • Every page read against the tree on 8 September 2026: the release and schema stamps (6.2.27, schema 6031, 2,124 tests), the routes, keys and pages that were missing, the listener paragraphs that were false, and the unreleased work labelled as such An audit of all 51 pages against master produced about 360 findings on 43 of them, applied here. The largest: the APIs reference lacked 47 routes and described the listeners as single-threaded HTTP/1.0 (they run on the Boost.Asio HTTP/1.1 server); the settings reference lacked the fourteen Update* keys and IMAPCompressionEnabled and counted 195 keys instead of 236; every "current release" stamp said 6.2.24; Changes Since 6.2.10 ended three releases and one schema step early; Architecture said the optional listeners were deliberately not Boost.Asio and built their own SSL contexts (neither is true); the upgrading pages still warned of a silent-upgrade hang fixed in 6.2.23; the Control Panel pages knew nothing of the seventeen languages, the Updates card or the stalled-mail page; and two pages did not render (a header inside a code block, CR and TAB bytes in file names). Anything in the tree but not in v6.2.27 - the live update, the self-service portal and /api/v1/me, the HttpServer listeners, IMAP COMPRESS=DEFLATE, the seventeen-language Control Panel, the Control Deck views - is documented and marked "in the tree after 6.2.27, not yet released". The Control Panel screenshots are still from a 6.2.10 build and the pages now say so.

    @chrisholloway5 chrisholloway5 committed Sep 8, 2026
  • The hMailServer 6.2.24 wiki: the corrected manual, the runbooks, and the references generated from the code

    @chrisholloway5 chrisholloway5 committed Sep 4, 2026