<?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.21: inbound mail from a Postfix relay could hang forever]]></title><description><![CDATA[<p dir="auto">Inbound mail from a Postfix-based relay could hang forever. The connection logs <code>354 OK, send.</code>, stops dead, and the sender eventually gives up with "timed out while sending end of data", leaving a zero-byte file in the Data folder. Anyone taking mail from Postfix or a Proxmox Mail Gateway was affected, and a same-host relay hits it almost every time. Three previous releases claimed to fix it and did not. This one was settled by running a real Postfix 3.10 against the server and reading the bytes on the wire.</p>
<p dir="auto"><strong>What the upgrade involved</strong></p>
<p dir="auto">Two known issues stand. Equal-preference MX records are not randomised (RFC 5321 5.1); the server always tries them in the order the resolver returned, and a comment and COM help string that claimed otherwise have been corrected. One-click unsubscribe (RFC 8058) is not implemented. RFC 2369 <code>List-*</code> headers are still emitted for distribution-list postings.</p>
<p dir="auto"><strong>Changes</strong></p>
<ul>
<li>Postfix pipelines the terminating dot and <code>QUIT</code> into one segment, so the terminator sits mid-buffer and every tail-only end-of-data check missed it. The receive path now searches for <code>&lt;CRLF&gt;.&lt;CRLF&gt;</code> anywhere in what arrived and returns the remainder to the command parser. Bare-LF terminators are still recognised only at the very end of the buffer, with anything behind them discarded, which is the CVE-2023-51764 rule.</li>
<li>SMTP dot transparency (RFC 5321 4.5.2) now carries line-start context across buffer boundaries in both directions. Previously a line-leading dot landing a byte or two into a chunk went unstuffed, silently truncating messages.</li>
<li>Sieve scripts were left behind by domain and account renames and deletes. Recreating an address could reactivate the previous holder's filter, redirects included. Renames now move the Sieve tree, deletes remove it, and the Control Panel writes the script only after the save succeeds.</li>
<li>Sieve <code>body</code> test (RFC 5173) implemented and advertised over ManageSieve, with <code>:text</code>, <code>:content</code> and <code>:raw</code>.</li>
<li><code>SORT () US-ASCII ALL</code> spun a connection thread at 100% of a core forever. Empty sort criteria are now rejected per RFC 5256.</li>
<li>The 512 MB message-list cache never evicted and only counted upwards. Eviction now measures entries as they are.</li>
<li>Malformed DNS answers are retried once over TCP. The Control Panel MX tool (#29) now uses the server's resolver via <code>Utilities.ResolveMXRecords</code>.</li>
<li>Control Panel: seven Administrator functions restored, plus Welcome page icon alignment (#30).</li>
</ul>
<p dir="auto">Everything in the 6.2.20 notes is in this release too.</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/28165/hmailserver-6.2.21-inbound-mail-from-a-postfix-relay-could-hang-forever</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 04:32:02 GMT</lastBuildDate><atom:link href="https://www.hmailserver.co.uk/topic/28165.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 16 Aug 2026 00:28:16 GMT</pubDate><ttl>60</ttl></channel></rss>