chore(master): release 2.80.0 - #653
Merged
andris9 merged 1 commit intoSep 9, 2026
Merged
Conversation
github-actions
Bot
force-pushed
the
release-please--branches--master--components--emailengine-app
branch
7 times, most recently
from
September 8, 2026 12:20
fb906f6 to
a377b50
Compare
github-actions
Bot
force-pushed
the
release-please--branches--master--components--emailengine-app
branch
16 times, most recently
from
September 9, 2026 09:35
baefcfa to
d561d8e
Compare
github-actions
Bot
force-pushed
the
release-please--branches--master--components--emailengine-app
branch
from
September 9, 2026 10:36
d561d8e to
bbcfee7
Compare
Contributor
Author
|
🤖 Created releases: 🌻 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖 I have created a release beep boop
2.80.0 (2026-09-09)
Overview
TLS certificates get their own page. Certificates are managed at Configuration > TLS Certificates instead of a checkbox on the SMTP and IMAP proxy pages. The page shows what each listener (API, SMTP server, IMAP proxy) actually serves, one row per hostname, and a certificate can be uploaded on its own subpage. Every listener with TLS switched on now has a self-signed fallback, so a missing certificate no longer crash-loops the worker. Material from
EENGINE_API_TLS_*,EENGINE_SMTP_TLS_*andEENGINE_IMAPPROXY_TLS_*outranks anything EmailEngine manages itself, encrypted operator keys load again, and a renewal swaps the certificate in place without restarting the SMTP or IMAP proxy worker. A first Let's Encrypt order is only placed while a listener would serve the certificate, so an instance behind a TLS-terminating reverse proxy is not asked to answer ACME challenges it cannot.Let's Encrypt on a maintained ACME client. The abandoned
@root/acmestack is replaced by an in-house RFC 8555 client in@postalsys/certs, which finalizes orders correctly, asks the CA when to renew (ARI) and drops fourteen packages from the bundle. Renewal timing was inverted before and ran a month after expiry.EENGINE_ACME_DIRECTORY_URLandEENGINE_ACME_ENVIRONMENTpoint a build at a different CA, for example Let's Encrypt staging.Exchange autodiscovery works. The Exchange branch of
GET /v1/autoconfigand the hosted setup form had never resolved a real server (wrong content type, wrong element order, no authentication). It now handles both the legacy and the SOAP endpoint, offers the password only after a 401 that asks for Basic over https, and an answer naming no server no longer ends the lookup.Fewer false authentication webhooks. A throttled or unavailable credential service (an OAuth2 token endpoint, the operator's authentication server) is treated as transient instead of a refused credential, so accounts stop flapping between
authenticationErrorandauthenticationSuccessand are not parked for an outage. The authentication server's own HTTP status no longer leaks into API responses or IMAP proxy replies.Outlook and Gmail change notifications are visible when they break. An Outlook account whose Graph subscription cannot be created (for example a disabled Exchange Online service principal) reports a
connectErrorinstead of silently receiving nothing, and subscription retries continue after the fast retries give up. A dead Gmail Pub/Sub watch is reported on the account page and inGET /v1/account/{account}asgmailWatch, and retried hourly instead of once a day.IMAP sync correctness. The first sync of a new account emits
messageNewfor existing mail again (broken since 2.69.0), sync no longer reads the counters of whichever folder an API call happened to select,mailboxDeletedis announced once, folder paths are matched the way the server spells them (InboxvsINBOX), a folder created while the primary connection was down is announced, and a disconnect mid-sync no longer publishes a message with missing inline images. A malformed message id answers a 400 instead of a 500.Admin UI. Forced SSO no longer swallows form submissions after a session expires, and the Re-authenticate button on the account page works again under the Content-Security-Policy.
Features
Bug Fixes
This PR was generated with Release Please. See documentation.