<?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.22-pre1: the built-in ACME client never worked with Let's Encrypt]]></title><description><![CDATA[<p dir="auto">This was the first pre-release in the 6.2.22 line. Everything in it shipped in 6.2.24. Nothing here should be installed today.</p>
<p dir="auto">The built-in ACME client has never completed an order against a real Let's Encrypt. If you issued certificates through hMailServer rather than an external client, it failed every time. That is fixed here (#34).</p>
<p dir="auto"><strong>What the upgrade involved</strong></p>
<p dir="auto">This is a pre-release. Take a backup before installing it. Databases upgrade automatically from schema 6012 to 6014 via the bundled DBUpdater.</p>
<p dir="auto"><strong>ACME (#34)</strong></p>
<p dir="auto">Boulder, the software behind Let's Encrypt staging and production, pretty-prints its JSON: <code>"type": "http-01"</code>, with a space after the colon. The challenge locator searched for the compact form, <code>"type":"http-01"</code>, which can never match a real response. Every issuance failed at the first authorization with "Authorization offers no http-01 challenge". The locator now tolerates any whitespace and checks that the string is genuinely a <code>type</code> key's value, and the real CA response shape is pinned by self-tests. Failure messages now name the domain they concern, and the no-challenge refusal includes the CA's actual response.</p>
<p dir="auto"><strong>Log lines going missing (#33)</strong></p>
<p dir="auto">With Keep log files open enabled, each line sat in a ~4 KB write buffer until later lines pushed it out. On a quiet server the tail of a session stayed invisible; the reporter measured forty minutes. The logger now hands every line to the operating system as it is written. Installations without the setting were never affected.</p>
<p dir="auto"><strong>Microsoft 365</strong></p>
<p dir="auto">Microsoft shuts off Basic authentication for SMTP relay in December 2026. XOAUTH2 bearer login is implemented for outbound relay and for POP3 collection from external accounts. Tokens use the client-credentials flow and are cached to 80% of their lifetime. Bearer auth applies only to destinations on the configured OAuth host list; unlisted relays keep password login unchanged. POP3 collection has no password fallback, deliberately.</p>
<p dir="auto"><strong>Sieve and IMAP</strong></p>
<p dir="auto">Sieve now implements variables (RFC 5229), editheader (5293), duplicate (7352), reject/ereject (5429), include (6609), enotify (5435), date/currentdate (5260), spamtest (5235), mailboxexists and :regex. ManageSieve gains RENAMESCRIPT and machine-readable response codes.</p>
<p dir="auto">Eleven IMAP extensions, including APPENDLIMIT (7889), LITERAL- (7888), LIST-STATUS (5819), UNAUTHENTICATE (8437), QUOTA=RES-STORAGE (9208), PREVIEW (8970), MULTIAPPEND (3502), REPLACE (8508), SAVEDATE (8514, schema 6013) and METADATA (5464, schema 6014). The delivery client now opens with EHLO on every delivery, not just routes needing TLS or authentication, and declares SIZE (RFC 1870).</p>
<p dir="auto">Still unimplemented: BINARYMIME, IMAP BINARY, CATENATE/URLAUTH, COMPRESS=DEFLATE, OBJECTID and outbound PIPELINING/CHUNKING. Equal-preference MX records are still not randomised (RFC 5321 5.1).</p>
<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/28168/hmailserver-6.2.22-pre1-the-built-in-acme-client-never-worked-with-let-s-encrypt</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 03:27:34 GMT</lastBuildDate><atom:link href="https://www.hmailserver.co.uk/topic/28168.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 16 Aug 2026 22:34:08 GMT</pubDate><ttl>60</ttl></channel></rss>