<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[hMailServer 6.2.28: the server can verify and apply its own updates]]></title><description><![CDATA[<p dir="auto">6.2.28 is the first release that can update itself. A scheduled task reads this project's release feed and the Status page reports what it found; fetching an installer and applying it are two further, equally opt-in steps. The upgrade to 6.2.28 itself is manual.</p>
<p dir="auto"><strong>What the upgrade involved</strong></p>
<p dir="auto">No schema change: 6031, as 6.2.27. The installer's database upgrade has nothing to do on a 6.2.27 database.</p>
<p dir="auto">Everything this release adds is off by default. <code>UpdateCheckEnabled</code>, <code>RestApiPort</code> (which the portal and the Control Deck need), <code>IMAPCompressionEnabled</code> and <code>HttpProxy</code> are all opt-in. A server upgraded without touching its settings behaves exactly as 6.2.27 did.</p>
<p dir="auto">Known and unfixed: the Control Deck reads but does not write, and holds the administrator password in sessionStorage while it is open. The regression suite runs on Windows only.</p>
<p dir="auto"><strong>What is in it</strong></p>
<ul>
<li><strong>Updates.</strong> <code>UpdateCheckEnabled=0</code> is the default and nothing happens until it is set: no request, no identifier, no counts. Turned on, the feed is read every <code>UpdateCheckHours</code> (24 by default). An installer is verified against its Sigstore bundle before it runs: the certificate chains to Fulcio, the identity and issuer are this project's release workflow, and the entry is in the public transparency log. These releases are not Authenticode-signed, so <code>UpdateRequireAuthenticode=1</code> refuses every one of them, and the Sigstore check cannot be turned off. <code>hMailServer.Updater.exe</code> stops the service, waits <code>UpdateServiceWaitSeconds</code> (180) for it to come back, and reinstalls the previous version if it does not.</li>
<li><strong>Webmail.</strong> <code>/portal</code> on the REST listener, with <code>/api/v1/me</code> behind it. It answers to the account's own credentials only: no administrator password, no API key. Read, send, search, attachments, the account's own quarantine, Sieve script and password change.</li>
<li><strong>A real HTTP server.</strong> The REST API and web services move off a single-threaded HTTP/1.0 loop onto HttpServer: HTTP/1.1 on Boost.Asio with keep-alive, chunked bodies, and header and body deadlines.</li>
<li><strong>IMAP COMPRESS=DEFLATE (RFC 4978).</strong> Advertised until compression is on and refused afterwards, as the RFC requires. STARTTLS is refused once a session is compressed.</li>
<li><strong><code>HttpProxy=host:port</code></strong> sends every web request the server makes as a client through a forward proxy. CONNECT for https, with the same certificate verification as a direct connection. No proxy credentials.</li>
<li><strong>Fixed (#156).</strong> A masked password in the Control Panel was typed backwards from the second character: 12345678 became 18765432. It hit IME commits and some keyboard layouts.</li>
</ul>
<p dir="auto"><a href="https://www.progressiverobot.com/hmailserver-downloads/" rel="nofollow ugc">Full release notes, checksums and signatures</a></p>
]]></description><link>https://www.hmailserver.co.uk/topic/28178/hmailserver-6.2.28-the-server-can-verify-and-apply-its-own-updates</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 04:31:12 GMT</lastBuildDate><atom:link href="https://www.hmailserver.co.uk/topic/28178.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 08 Sep 2026 07:30:02 GMT</pubDate><ttl>60</ttl></channel></rss>