Skip to content

History / The COM API and Scripting

Revisions

  • Every page's header says whether 6.3.8 is reflected in it, and none calls 6.3.7 the latest release, where forty-eight pages still did; the own pages' passages that named "the release after 6.3.7" for what it would bring name 6.3.8, which brought it. The guide and reference pages whose headers said that 6.3.7, the latest release (17 October 2026, schema 6108), was not yet reflected say that 6.3.7 and 6.3.8, the latest release (2 November 2026, schema 6108), are not: thirty-eight of them, ten of which also name 6.3.5 and 6.3.6 so. Backup and Restore keeps its exception, the release a failed full restore is made again on, and the Settings Reference that its keys were last re-checked at v6.3.6, its section on the settings store calling 6.3.8 the current release. Capabilities and Configuration reflects 6.3.8 in its version stamp (6.3.8, build 47, at the tag v6.3.8), its list of published releases, the schema each release requires, the releases the release jobs have made and what applies a new installation's secure defaults in a container, and its header says so. Encryption and Certificates' note in When it renews on a host added to AcmeDomains (work item 98), Migration's refusal of the original's 5.7 and the Ports Reference's sentence on the secure defaults of a container's new installation name 6.3.8 where they said the release after 6.3.7, and each header says that this is what of 6.3.8 it reflects. Version History to 6.2.10 says that what came after it, up to 6.3.8, is in Changes Since 6.2.10. The Project Handbook's status note says that 6.3.7 was the first of the security releases and 6.3.8 the second, and sections 8 and 9 that the release jobs made 6.3.8 on 2 November 2026, and the note that these are brought to 6.3.8 and the rest of the page to neither. The headers of eight copies - the Assurance Case, Contributing, Governance, Regulatory Scope, Release Process, Security Policy, The Update Feed and Third-Party Binaries - say in their sentence of 19 October 2026 that 6.3.7 was then the latest release. Signed-off-by: Christopher Holloway <chris.holloway@progressiverobot.com>

    Christopher Holloway committed Nov 2, 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
  • Monitoring and Health, Backup and Restore, Settings Overview, The REST API and The COM API and Scripting describe the screenshots retaken from 6.3.7, read from each image and from the Control Panel at master, where they described the 6.2.10-era captures: Server status opens with its Configuration checks card, once Warnings at the foot, and the count of auto-ban ranges is under Banned now in its Statistics card rather than among the warnings; the State column of the delivery queue - Delivering now, Due for delivery or Next try in ... - holds what NextTry did, beside Trace message and Deliver all now; API & monitoring is Monitoring & alerts, with the REST API, Metrics, Alerts & webhooks, SNMP and Shutdown tabs, ManageSieve being on Protocols and the Windows event log on Logging, and its settings are stored in the database under their INI names, where the text offered hMailServer.INI; Diagnostics has the Hosted domain and Remote domain boxes, Copy results and the Message-store consistency card; Backup & restore is Backup, restore & migration, the shot showing all six backup options with domains and messages unticked; Server limits & expert settings opens on its Timeouts and queue bounds card; the ACME page is Automatic certificates (ACME), shown switched off and empty as on a fresh installation; Event scripts has Check syntax, Reload from disk, Save & reload and the Insert template... list; and the audit trail is under Compliance. The Logging page keeps its earlier capture and its caption. 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 reference pages carry what 6.3.6 adds and changes: the live update's trust read from hMailServer.ini alone, the never-ban list by reverse name, each SMTP listener's AUTH, the FQDN checks, the SURBL score, the sessions' bounds, the folders made private, and the COM members, routes, states and figures that go with them. APIs Reference: days to keep with one meaning and the 409 for a page left open; Utilities' helpers answering a signed-in caller; the members added in 6.3.6 with their dispids; UpdateState 6 and 7 and GET /api/v1/update's new fields; the never-ban routes; smtp_authentication on /api/v1/ports; the three anti-spam keys and auto_ban_widen_by_reverse_name; the breach-check test, the audit put-back and the trust keys refused on /settings/ini; the invitation reply's occurrences; the administrator password's delay, the Host the loopback port answers, the IPv6 /64, fifty sessions a holder, API keys' source restrictions, the audit trail's new records. The REST API: the same on its own tables. Settings Reference: the five trust keys file-only, the UpdateSourceRepository row, the four hm_settings rows 6.3.6 adds with hm_neverbannames and portsmtpauth, HelpWikiBaseUrl at the group's path, the [Settings] baseline unchanged, DNSServer and the IP forms refused, DnssecValidationEnabled's IPv6 servers, DaneEnforcementEnabled's resolver, AutoBanCommand's ledger, AutoBanNeverBan's older forms, HttpProxy's callers, the XOAUTH2 token request through it, the Updates folder left out of backups, HM4401. Settings Overview: the five cannot be set over COM, REST, the Control Panel or the Deck. Control Panel Reference: the external account's wording, the update settings shown and not edited, the status card's states 6 and 7 and Install update under NT SERVICE\hMailServer, the thirteenth checklist item, the search phrase, the live logs' message, the Deck's script policy. The Control Panel and The Control Deck: thirteen items, the live logs' message, the Deck's 6.3.6 behaviour. Capabilities and Configuration: the version and schema stamps, the trust keys, the update states, HttpProxy's callers, the never-ban names and the widening, OpenSSL 4.0.3, libpq 18.6, QuickJS 2026-06-04. Ports Reference: portsmtpauth, each listener's AUTH, ManageSieve's deadlines, the bind addresses in older forms, SO_EXCLUSIVEADDRUSE, the forward proxy's callers. The COM API and Scripting: Send a message from a script through Application.CreateMessage, OnExternalAccountDownload's answers for IMAP, QuickJS 2026-06-04 and ES2025, scripting off, the Service Desk address at the group's path. Project Handbook: the libraries and the address. Runbooks Digest: days to keep -1. Architecture: HttpsClient's callers, and the flowchart of an error report that no longer recurses on a missing UseScriptServer. Troubleshooting: the by-hand install and Install update, HM7465 to HM7469 and HM5480, port 25's Honeypot, a disk that fills as a message's last bytes are written. 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; where 6.3.5 changed the page too (the sidebar's order, the quarantine review, its fields and members), the header says that is not yet written in. 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
  • Seven features 6.3.4 added have a page of their own, each a copy of its repository document as the tag v6.3.4 (51e2dbda0) has it, headed by the Source of truth note the other copies carry (GitLab issue #25): The SNMP Agent (Snmp.md), Event Scripts (EventScripts.md: the JavaScript engine of the Linux builds, and the contract for all three languages), Secure Defaults (SecureDefaults.md), The Service Account (ServiceAccount.md), Secrets at Rest (SecretsAtRest.md), Database TLS (DatabaseTls.md) and The Update Feed (UpdateFeed.md). A link to a document the wiki copies became a wiki link - Command Line, Third-Party Binaries, Warm Standby, High Availability Runbook, Upgrading Guide and The Service Account, the last two to their sections - and every other became a link to the document at v6.3.4. Each note says where the tag has moved on from its document. The installer smoke test SecureDefaults.md expects on a branch is in the tree at the tag, and does not yet make the checks it lists. ServiceAccountName and ServiceAccountPassword, which ServiceAccount.md calls no longer read, are still loaded by the settings loader (IniFileSettings.cpp:457-458) and used by nothing. The site that UpdateFeed.md's opening note calls not yet deployed has served the feed over HTTPS since 26 September 2026, and at 05:31 UTC on 27 September answered /releases/latest and /releases.json with 6.3.4 and /download/hMailServer-x64.exe with a 302 to 6.3.4's installer. The sidebar and the landing page list each page in its group: Database TLS, Secure Defaults, The Service Account and Secrets at Rest under Secure it; The SNMP Agent and The Update Feed under Operate it; Event Scripts under Extend it. The landing page counts 72 pages (the 74 files less the sidebar and the footer), the other 71, and twenty-two with a Source of truth note; the guides stay 38, since a copy is a repository document. The Runbooks Digest names the seven among the copies. Monitoring and Health, The COM API and Scripting, Security Hardening, Encryption and Certificates, Migrating the Database Backend and Upgrading hMailServer keep what they say of each feature, and gain a line pointing to its page. Every page was rendered with GitLab's Markdown API in the project's context on 27 September 2026: every wiki link, relative link, anchor and link into the repository, at master and at v6.3.4, resolves, and nothing on the new pages is HTML that could be stripped. The one finding, a link to Sigstore's cosign on GitHub from Installing hMailServer, is that project's own page and predates this change.

    Christopher Holloway committed Sep 27, 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
  • 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
  • What the adversarial check of the wiki's catch-up found, put right. The REST API's route counts left out the settings groups: RestApiSettings.cpp writes /api/v1/settings and its named groups into the OpenAPI document from its group tables, so no path literal shows them, and the document names 146 paths and 219 operations in 6.3.3 and 417 and 588 at master 540347500, not the 137 and 202 and 404 and 563 the literals alone give; the landing page, The REST API, the APIs Reference and Capabilities and Configuration now say so. The landing page counted 53 pages and listed none of the eight new ones: it counts 61, lists all eight where the sidebar has them, says fifteen pages carry a Source of truth note rather than eight, and names the eight among the guides. A documentation error was said to become an issue with the documentation label, which neither the Default template nor a visitor can set; the sidebar, the footer and the landing page ask for an issue naming the page. Regulatory Scope's table linked Changes Since 6.2.10 as [[Page|Page]], which GitLab splits at the pipe. Capabilities and Configuration placed the 6.3.3 version stamp at 3233b0cc4; it is still 6.3.3 build 42 at 540347500. The Webmail counted Greek, Korean and European Portuguese among what the tree adds, when 6.3.3's twenty already had them; Connecting a Mail Client listed S/MIME in the page as new, which it has been since 6.3.2, where the new thing is a domain's S/MIME authority; Changes Since 6.2.10's collection sweep read 87 calls, six fixed and 84 others, which is three loops and three members; the COM page said every class now carries ISupportErrorInfo, where the checker holds every class that raises an error. And the wiki's own pages stop saying that GitHub's CI runs: Encryption for People's GnuPG proof, the Linux builds on the ARM runner and with both compilers, the translation-unit census, the Compose file and the chart, the settings-index generator, the ini-coverage checker, the account-stores checker and the C++ CodeQL job ran there until 18 September 2026 and are run by hand, or not at all, since. The APIs Reference's server states gain 5, Draining.

    Christopher Holloway committed Sep 24, 2026
  • The COM page was written against 6.2.28 and knew 94 coclasses, which is 6.3.3's count too. The tree after 6.3.3 has 100, and a new section 23.3a lists what it adds, read from hMailServer.idl at master 540347500 by interface: the six new interfaces (the remote domain policies, the sender list entries and the greylisting bypass entries, each a collection and its item), every member appended to Application, Settings, Domain, Account, Utilities, AntiSpam, Logging, DistributionList, DistributionListRecipient, BackupManager and BackupSettings, the new enumeration values - hStateDraining, five rule criteria, five rule actions, and the outbound TLS and gateway encryption enumerations - and the features that have no COM surface and are REST only. Section 23.2 gains the two changes a script meets: every COM class now carries ISupportErrorInfo, so a refusal comes with its sentence instead of a bare 0x800403E9, and authority is a role that COM asks about through the same RoleManager::Allows the REST API does. Everything new is labelled as in the tree after 6.3.3 and not yet released.

    Christopher Holloway committed Sep 24, 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