Skip to content

History / What hMailServer Is and Is Not

Revisions

  • Contributing's header says that with batch52 the row for check-package-manifests.py names the checks of the release's date and of the fork's texts, neither of which the row named before, where it said that before batch52 the checker checked the manifests against their schemas alone - CONTRIBUTING.md at 5e49abf06 already had the row name the installer URL's check in the package registry, and the checker's own docstring lists what it checks beyond the schemas; and What hMailServer Is and Is Not's header says that 6.3.5, 6.3.6 and 6.3.7 are not yet reflected on the page but for the Linux packages each carries, which its table of what you provide gives since 22 October 2026 (f5db2bb), where it said that none of the three was reflected. Signed-off-by: Christopher Holloway <chris.holloway@progressiverobot.com>

    Christopher Holloway committed Oct 22, 2026
  • Home's page index and What hMailServer Is and Is Not's table of what you provide say that the Linux packages are for x86-64 and AArch64, where they said that AArch64 had 6.3.3's alone. Home's row Run hMailServer on Linux says on x86-64 or AArch64, where it said on x86-64, and on AArch64 with 6.3.3's packages; its row for Installing on Linux says that the page covers the .deb and the .rpm for x86-64 and AArch64, each supported distribution release's own package and both AppImages, 6.3.4 and 6.3.5 having carried the x86-64 .deb and .rpm only, and the build services that carry 6.3.7, where it said the .deb and the .rpm for x86-64, and up to 6.3.3 for AArch64 and as an AppImage. Both rows came in with c368a3e on 26 September 2026, for 6.3.4, when 6.3.3 was the last release with AArch64 packages and AppImages; the second said of the AppImages what hmailserver/docs/PackageManagers.md said until batch52, that no release after 6.3.3 carried them, and with batch52 on master, 72be22b4e, the document says that they were attached to 6.3.0 to 6.3.3 and again from 6.3.6, but not to 6.3.4 or 6.3.5, as the same page's Platform row and Installing on Linux say of the AArch64 packages and the AppImages. What hMailServer Is and Is Not's row for the machine says that 6.3.4 and 6.3.5 carried x86-64 packages only and that 6.3.6 and 6.3.7 carry the AArch64 ones again, where it said that 6.3.4's packages were x86-64 only and that the AArch64 packages were 6.3.3's. The releases on GitLab, read on 22 October 2026, agree: v6.3.4 and v6.3.5 have an amd64 .deb and an x86_64 .rpm as their only Linux files, and v6.3.6 and v6.3.7 have the arm64 .deb, the aarch64 .rpm, each distribution release's packages for both architectures and both AppImages. Signed-off-by: Christopher Holloway <chris.holloway@progressiverobot.com>

    Christopher Holloway committed Oct 22, 2026
  • Five of this wiki's own pages say what the documents say with batch52 on master, 72be22b4e, where 22057dd or 988cfbb left them saying otherwise. Upgrading hMailServer's 18.2, after its flowchart and in its table's row for the original's 5.7 builds of August and September 2026, says to install this server on another machine, make the domains and accounts there first and move each mailbox's mail with a migration of kind imap from the original server, a Windows machine holding one of the two since both installers register as hMailServer_is1, as Migration.md's From the original hMailServer and ForkAndOriginal.md say, where it said to set this server up beside it and move the mail over IMAP, which on one Windows machine would have had this fork's installer take the original's installation for its own. Changes Since 6.2.10's 6.3.4 entry on the winget and Chocolatey manifests says that winget's first submission is made by hand and has not been made yet and that Chocolatey's was made by the chocolatey-publish job, which pushed hmailserver-progressiverobot 6.3.7 on 20 October 2026, where it waits for moderation, as PackageManagers.md says, where it said that the first submission to both was by hand; and that the GitHub workflow package-managers.yml was to render and check the manifests on every release, but arrived on 15 September 2026, after the v6.3.3 tag, so that no release ran it, and was not ported to GitLab, where it said that a workflow renders and checks them on every release. The Runbooks Digest's section 6a, on Migration.md, says in What it covers and in Routes (verified) that the original hMailServer moves in place up to 5.6 and its 5.7 releases by a migration of kind imap, with the domains and accounts made here first, as the document says since 21 October 2026 and as the page's own table of routes already said, where both said the upstream hMailServer in place. What hMailServer Is and Is Not's About this fork and Version History to 6.2.10's lineage, in its text and its drawing, no longer say that the original went quiet for years, which README.md no longer says since batch52, the original being developed again; the lineage names the original as Martin Knafve's and says, as README.md does, that it has since resumed development separately. The Contributing copy keeps the clause, CONTRIBUTING.md at 72be22b4e still having it. Signed-off-by: Christopher Holloway <chris.holloway@progressiverobot.com>

    Christopher Holloway committed Oct 22, 2026
  • Nine of this wiki's own pages say what the documents say with batch52 on master, 72be22b4e, of the fork and the original, of the channels and of the container image's copies, where they said otherwise. Home says that the wiki documents Progressive Robot's fork of hMailServer, not the original hMailServer by Martin Knafve, with a link to ForkAndOriginal.md, which says how the two differ, where it called it the modernised fork, and that the installer upgrades in place every earlier release of this fork and the original up to 5.6, not the original's 5.7 releases, where it said that it upgraded any earlier hMailServer. What hMailServer Is and Is Not's About this fork says the same, that the original released 5.7.0 on 28 September 2026 and 5.7.1 and a 5.7.2 pre-release on 29 September, and that this fork is not made by Martin Knafve or the original project and is not its successor, and links ForkAndOriginal.md; its two sentences on the design rule say that an installation it upgrades behaves no differently until something is turned on, where they said that an existing hMailServer installation upgrades. Migration's table of routes has the original's 5.7, a migration of kind imap with the domains and accounts made here first, and the Runbooks Digest's table of routes has the original up to 5.6 in place and its 5.7 by that migration, where it had the upstream hMailServer in place; Upgrading hMailServer's 18.2 points at ForkAndOriginal.md. Installing hMailServer says that the Chocolatey package is hmailserver-progressiverobot, pushed by chocolatey-publish on 20 October 2026 and waiting for moderation, that choco install hmailserver finds nothing and is not this project's, the id being the original's, that winget is not submitted and that winget install hMailServer will install the original once a community packager's pull request is merged, and that both installers register as hMailServer_is1, where it said that winget install hMailServer and choco install hmailserver would work once a first submission was reviewed; Changes Since 6.2.10's 6.3.4 entry on the manifests is titled for the manifests and names both ids, where its title was those two commands. Installing on Linux says that OBS, Copr and the PPA carry 6.3.7, for which releases and with what commands, as Channels.md gives them on 21 October 2026, and that the AUR and the Snap Store have nothing yet; it and Running in a Container say that the owner made the copy on ghcr.io public on 20 October 2026 and that the image was copied to Docker Hub as docker.io/progressiverobot/hmailserver on 21 October 2026, each pulling without signing in, where they said that the copy was private and being made public. Signed-off-by: Christopher Holloway <chris.holloway@progressiverobot.com>

    Christopher Holloway committed Oct 22, 2026
  • Home, What hMailServer Is and Is Not, The Control Panel and Control Panel Pages describe the screenshots retaken from 6.3.7 in the previous commit, read from each image and from the Control Panel at master, where they described the 6.2.10-era captures: the notes that called the pictures 6.2.10's and their tree the older one say they are 6.3.7's, in the default light theme, over the sample domain example.test, and Control Panel Pages' note says that its tree and its table of every page are 6.3.4's and that the old names are search aliases; the sign-in card is headed Sign in, with a Sign in button and no two-factor link, both second factors being set up on Sign-in & access, Administrative access, Two-factor, with the buttons Set up the server-enforced second factor... and Set up Control-Panel-only two-factor authentication...; the Welcome page has thirteen task rows, Set up this server first (to the Setup checklist), then the sample domain's card and one area tile for each group of the tree the credential sees, where the text said twelve rows and six tiles, and its rows go to TLS certificates and Backup, restore & migration, the last one named Protect the administrator password; the Dashboard's tiles are Servers running for and Spam detected, and its Action needed card is at the top, not below the charts, running the checks of the Setup checklist, as External setup is now called; the metrics history is set on Monitoring & alerts, on its Metrics tab; the collection editors are a list with Add..., Edit... and Delete and a dialog per entry, their columns Refusal text, Email address and File-name pattern, on the pages now called DNS block lists (DNSBL), Spam exemptions and Greylisting exemptions; Protocols has six tabs, ManageSieve among them, Performance five, Message store among them, and Advanced three - General, Copies of mail and Scripting - the administrator password being on Administrative access; the About page has a Get help card and a version table with Copy version details; the domain dialog has seventeen tabs in 6.3.7 and the account dialog sixteen, Identity holding the account's kind, its external ID and whether its OpenPGP keys are published, each opened with the pencil button on its row (Edit domain ..., Edit account ...), as is a distribution list (Edit distribution list ...); DKIM's Generate key pair... asks where to save the key and fills in the selector dkim when it is empty, and DNS records is under Set up this server; and the TCP/IP port dialog, opened with Properties..., is titled for its port, with TLS certificate, SMTP authentication and Client certificate policy (mutual TLS), whose Request or Require shows the CA bundle field. 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
  • 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 guide pages say what 6.3.6 changes in anti-spam, DANE and outbound TLS, backups and restores, calendars, sign-ins, the webmail, Sieve, the store commands and the auto-ban, and every page's header says whether 6.3.6 is reflected in it. Stopping Spam: the SURBL test as 6.3.6 runs it (every registrable domain up to 200, 256 names a list, sixteen lookups at a time, SurblTooManyDomainsScore, a list's error answers never a listing), the Sender MX test by the Public Suffix List, the two FQDN checks, the greylisting key of schema 6107, the sender lists' URL entries. Encryption and Certificates: What DANE actually does for 6.3.6 - DANE-TA, the indeterminate lookups, the validated MX RRset, a resolver that strips DNSSEC, the deferrals where mail bounced, and the log lines as the tag writes them. DNS for Your Domain: the indeterminate rule and the resolver requirement. Routes and Relays: the relayer's STARTTLS required refuses permanently, as it always did; a webhook route held to public addresses through HttpProxy. Mail In to a Webhook: the same. Backup and Restore: the Updates folder and a destination inside the data directory left out, the restore that copies in first and undoes a copy that fails, the full restore that failed on installations made new with 6.3.4 or 6.3.5, this installation's own self-signed pair kept, a message deleted while a backup copies. Rooms and Equipment: the organiser verified by the From address, and the send API believed for nobody. Encryption for People and The Webmail: the S/MIME certificates kept, the HTML view's images, OpenPGP's 32 MB, the attachments' types, the invitation card, days to keep. Connecting a Mail Client: a stored event changed only by a verified sender, the AUTH on port 25 that bans, FETCH's NO [LIMIT]. Sign-in and Identity: the pending sign-ins carried by the browser, sealed. Rules and Sieve: ManageSieve's deadlines and a session that ends. Message Storage: the store commands' link rule. Mailing Lists: every field of a posting removed. Security Hardening: the grant through a junction, who else on the computer may read the mail (/ProtectFolders), AutoBanMinutes for an AUTH on port 25, the checklist's row 12a. Migration: days to keep messages, as the repository's document gives it. Aliases, Lists and Public Folders, Compliance and eDiscovery, Control Panel Pages, Monitoring and Health, Outbound Shaping, Profiles and Environment, Stopping Viruses, What hMailServer Is and Is Not, Your First Domain and Mailbox and How Email Works: the header says that 6.3.5 and 6.3.6 are not yet reflected on the 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
  • What the check of the wiki's 6.3.4 pages found: the Control Deck's Update row named the next release by number, and now says the releases after 6.3.4 are to be signed by the project's GitLab CI once its signing job exists; the Control Panel reference said GitLab CI signs the releases after 6.3.3, which 6.3.4, unsigned, is not; the restart row counted 26 bootstrap keys where build/ini-settings-baseline.txt now has 29, [Database] TlsMode and TlsCaFile and [Security] StoredSecretsKey added; the stored-secrets key is made by the Windows installer alone, and the Linux packages need the verb as an upgrade does; the sandbox's shipped types include shortcuts, disk images and PDFs; the object store's fixture needs a lab store and skips without one, rather than running against the lab as a matter of course; PasswordPepper is the one setting the virtual service account refuses to save; a shaping wait spares a message's retries only until it outlives its retry schedule; and the database connection's new TLS is MySQL's, MariaDB's and SQL Server's, unverified unless TlsMode asks, PostgreSQL's being unchanged.

    Christopher Holloway committed Sep 26, 2026
  • The feature pages now describe 6.3.4, the latest release (26 September 2026, schema 6103), built from the tree at 92b8f9f63. What they labelled as in the tree after 6.3.3 and not yet released is in 6.3.4 and says "since 6.3.4"; dates inside the release become the version; the sidebar names 6.3.4 as the latest release. What landed after 540347500 is added where a reader meets it. Connecting a Mail Client gains what 6.3.4 changed in IMAP's answers after Dovecot's imaptest (NO where BAD was wrong, \Seen on every BODY[section] without PEEK, APPEND stored byte for byte, a command pipelined behind APPEND answered, SORT and THREAD as the RFCs say, \Recent counted), what a new installation asks of a password (STARTTLS offered, TLS required for authentication from the Internet range, a self-signed certificate), rooms in CalDAV's room finder, and that a mailbox encrypted at rest takes its own password only. The Webmail gains a folder of a hundred thousand messages - one page copied, Oldest, a bounded search that goes on, select-all handed to the server - labelled built and not yet measured. Migration gains PST import: the import directory that is empty as shipped, what comes in and what is refused, and the reader in a child process, which is crash containment and not a sandbox. The Control Panel pages gain the Discovery page (65 pages), the Message store tab, the Windows service account card and what the virtual account refuses; the Control Deck page gains the Discovery and Inbound webhooks views (40), the twelve checklist items, the census of 466, 458 and 586 routes, and the update feed as it stands: 6.3.4 carries no Sigstore bundle and is installed by hand. The remaining pages gain the webhook route that outranks aliases and lists, a legal hold beside rules and Sieve, the Run function name rule, the three new permissions and the administrator password rehashed at sign-in. Four new pages give features with no wiki home one: Compliance and eDiscovery (cases, searches, holds, exports, and the erasure a hold outranks), Message Storage (compression and attachments held once, mailbox encryption at rest, object storage on S3 and Azure Blob, each off by default), Rooms and Equipment, and Mail In to a Webhook. Each is in the sidebar in its natural place, and every sidebar entry resolves to a page.

    Christopher Holloway committed Sep 26, 2026
  • What hMailServer Is and Is Not's table of what is off by default gains the row it lacked: what the tree after 6.3.3 changes without a switch - the two-minute outbound back-off and uncounted self-chosen deferrals, settings that apply when saved, and compromised-account detection's watch mode, which only reports.

    Christopher Holloway committed Sep 24, 2026
  • The pages a new administrator reads first are brought up to master 540347500. What hMailServer Is and Is Not no longer says there is no shared calendaring: it says what the tree after 6.3.3 has (calendars shared with colleagues, groups and delegates, invitations by mail, free-busy, a directory, transport rules, journaling, recall) and what it still has not (ActiveSync, MAPI, Teams, bookable rooms), counts 2,302 tests in 6.3.3 and 3,390 in the tree, and names Linux and the container. Before You Install points a Linux or container reader to their own pages and adds the choice of a setting profile and the first-hour checklist. Installing hMailServer adds the installer's profile page and /profile= switch (written, not yet run in a built installer), the checklist and the sample domain, the drain before an upgrade and [Database] UpgradeOnStart, the schema at 6096, and says the winget and Chocolatey manifests still name GitHub's download. Installing on Linux links Roadmap2's Linux section, lists the AppImages and the GitLab download names, corrects the PKGBUILD's source, gives --set-setting as the way to turn the REST listener on after the first start, lists the new verbs, counts 38 Deck views and 456 of 464 properties, says a save applies at once for 211 keys, and says the Linux suite last ran on 17 September, before its CI host went. Your First Domain and Mailbox adds the sample domain, the quota policy, the out-of-office window, the domain and account dialogs' new tabs, spreadsheet import, SCIM and what a person now does for themselves. How Email Works adds the refusals the tree's SMTP session can give, each off until set.

    Christopher Holloway committed Sep 24, 2026
  • The wiki catches up with the tree after 6.3.3, and one thing the code says that no page said. Section 4e of the changes page is what is on master and in no release at all - checked line by line against the code at 916dec6a1 rather than against the commit messages, which is how three of the draft's claims came to be corrected: the Control Deck speaks twenty languages and the webmail twenty-three, so it is twenty of the webmail's languages rather than "the same twenty"; the server settings page has twenty-nine tabs, not thirty-one; and the Control Panel redesign added thirteen texts to each of the seventeen catalogues, not twenty-six. Everything else in it was verified where it could be: the 592 zone names counted out of the built-in table in ICalendar.cpp, the 501 texts counted in a Deck catalogue and the 631 in a webmail one, the eighteen dialogs counted as the classes deriving from FluentDialogWindow, the two calendar tables read out of Upgrade6040to6041, the schema step read out of DBUpdater's registration and REQUIRED_DB_VERSION, and the four new routes read out of the router rather than out of the OpenAPI prose. The gate numbers are the one thing left blank: the full Windows suite was still running on this exact tree, so the section carries a marked placeholder and section 1's master row says so, because a number invented here is a number somebody quotes. Schema 6041 is in section 2 as a row of its own, marked as in the tree and in no release, and the two places that said "6040" now say what is where. The Control Panel pages describe the program as it is now. The redesign of 15 September is in the tree and unreleased, and every paragraph about it says so, because a reader on 6.3.3 opens a window with the old chrome: the command bar with its search, status pill, theme toggle and administrator menu, the sidebar that collapses to a rail below a thousand pixels, the ten scaffold components, and eighteen dialogs sized to their content rather than to a pixel width typed into a constructor. What did not move is what a reader has learned - the navigation map, the page titles, the tab headers, the setting captions, the automation ids - and the pages say that too, which is why Control Panel Pages was not rewritten around it. Three counts were behind and are corrected from the code: 393 settings in the Ctrl+K index rather than 389, 343 captions with an Alt key rather than 340, and 3,403 texts in each catalogue rather than 3,376. Two of the four settings that moved the index shipped in 6.3.2 and the reference had missed them, so the per-page table's auto-ban and web-services rows are re-counted as well. The settings pages carry the rule adopted on 15 September: a new setting goes in the database, in hm_settings with a Control Panel editor, and no new key is added to hMailServer.ini's [Settings] section. Both pages say the part that matters more than the rule - that nothing already there has moved. The 238 keys are still read from the file, in 6.3.3 and in the tree, and the Settings Reference is still their reference; the migration that flips which store is the truth is a roadmap row, not an event. The file keeps the directories, the database connection and the administrator password and second factor, and anything that genuinely has to be readable before the database opens is an argued-for exception. The API reference gains what the server publishes and the page did not. Comparing the route table with the OpenAPI document the server emits found seventy-four paths of a hundred and forty-five unnamed, so the administration families are now all there: the six anti-spam collections and the blocked attachments as resources, an account's application passwords, folders, folder permissions and message object, all of which shipped in 6.3.3 and were nowhere on the wiki - and then the four that are in the tree and unreleased, groups with their members, the message copy, the rule-criterion probe and the calendar expansion, each with the body it takes and what it answers. The roughly forty /api/v1/me routes the webmail uses are still families rather than rows, and the page now says so in its own words and points at the OpenAPI document as the authority rather than leaving a reader to think the table is complete. Stopping Spam was left alone deliberately. The brief said SPF was being replaced this week; at this commit it is not. The evaluator is still the original one with the ten-term limit and the void-lookup cap, nothing under AntiSpam or SMTP/SPF has changed since v6.3.3, and the page describes it correctly - so the honest edit was none. The finding is on Backup and Restore, and it is the reason this pass was worth running against the code. The built-in backup's XML index is built by each business object's XMLStore. An account's record carries its password, its TOTP secret, its fetch accounts, its application passwords, its rules and its folders. Nothing anywhere writes hm_contacts, hm_accountprefs, hm_scheduled, hm_files, hm_smimekeys, hm_calendars or hm_calendarobjects - no XMLStore reads them - and Message::XMLStore writes Flags but not messagekeywords. So the address book, every webmail preference a user chose, their labels, their second and third stars, their follow-up flags, their scheduled and snoozed mail, their file links, their S/MIME keys and (in the tree) their calendars are in no archive this server writes. Worse than absent: every one of those tables cascades from hm_accounts, and a restore calls Domains::DeleteAll before it puts the backup's domains back, so a restore deletes them. The page now says it, in the short version and in a section of its own, with what to do instead - back the database up with the database server's own tool, and restore from that when recovering a whole server. No page said any of this before. Monitoring and Health was re-checked rather than rewritten: not one metric family, bucket bound, probe condition, reason string or default has moved since it was verified at 6.2.28, and the only change to MetricsServer.cpp is the Linux accept-loop stop. It gains a section on reading the server from a shell - hmctl status, log list, log tail and backup, with the routes behind them - marked as in the tree and unreleased, since a reader on 6.3.3 has neither client. Smaller corrections found while checking: the capabilities page's web-services entry predated CardDAV entirely and now carries both DAV protocols, their paths, their HTTPS-only rule and what CalDAV does not do; the installing page has a paragraph on winget and Chocolatey that says plainly they do not work yet, because a first submission is reviewed by a person; What hMailServer Is and Is Not still called 6.3.3 unreleased and said the webmail speaks twenty languages; the Control Panel reference still called 6.3.0 the current release; and the fuzzing page's "iCalendar reached through attachment handling" is now also reached by an authenticated CalDAV PUT, which is a shorter path to a parser that expands attacker-chosen numbers - the COUNT=100000000 defect fixed by hand this week is the argument for the target.

    @chrisholloway5 chrisholloway5 committed Sep 15, 2026
  • Two pages still said the built-in page is self-service and not a mail client, and pointed readers at Roundcube - true until 6.3.0, wrong since 6.3.2. What hMailServer Is and Is Not, and Connecting a Mail Client, now say what the page is since 6.3.2 and what 6.3.3 brings, labelled unreleased.

    @chrisholloway5 chrisholloway5 committed Sep 14, 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