2.63.4 (2026-03-09)
- guard null imapClient dereferences during async operations (671bcee)
- prevent null dereference crash in getImapConnection during connection drops (6a356fd)
- throw instead of silent return in select() null guard, revert redundant optional chaining (cb7db50)
- update tests for getCurrentListing null guard changes (a644f9c)
2.63.3 (2026-03-05)
- handle undici HeadersTimeoutError as transient in Pub/Sub and OAuth2 paths (8b3b698)
- prevent IMAP worker crash on ImapFlow unhandled rejection during IDLE recovery (86ebb02)
- prevent transient network errors during OAuth2 token refresh from being misclassified as auth failures (38fa212)
- retry transient network errors in Gmail and Outlook API request functions (08ea0da)
- treat DNS errors as transient in Google Pub/Sub polling loop (ec33673)
2.63.2 (2026-03-03)
- harden static file route with path confinement and pkg-only guard (19cd5f6)
- prevent EISDIR crash on static subdirectory requests in pkg (4d5ef81)
- prevent infinite loop and add retry backoff in account assignment (f8b9e53)
2.63.1 (2026-02-26)
- handle non-numeric error codes from Microsoft Graph in OAuth callback (#580) (89fd9f7)
- prevent EISDIR crash on /static directory requests (5b9c2db)
- remove dead redirectToSlash option from static directory handler (f90339a)
- validate fallback status codes in resolveOAuthErrorStatus (d2b49e3)
2.63.0 (2026-02-19)
- flag nested message/rfc822 attachments with encodedInMessage property (7e51024)
- prevent permanently lost accounts after worker crashes (3deabb5)
2.62.2 (2026-02-07)
- include ESM @csstools packages as pkg assets (df9f6d2)
- pin subdependency to avoid installing unsupported version (045b8ce)
2.62.1 (2026-02-07)
- replace BigInt literal with constructor for gettext parser compatibility (119ba69)
- replace spread syntax with Object.assign in tools.js for gettext parser compatibility (02ecc60)
- resolve ESLint 10 lint errors (7d397f6)
- resolve HTTP proxy feature issues (750619d)
2.62.0 (2026-02-06)
- add AES-256-GCM encryption at rest for export files (4f67269)
- add configurable batch sizes for Gmail/Outlook exports (a4d178c)
- add export beta notice and status indicator in UI (271bd18)
- add export reliability improvements and resume capability (9f78644)
- add export UI to admin account page (cf3ce49)
- add global concurrent export limit and performance optimizations (20a1272)
- add include attachments option to export UI (2b8d2c6)
- add parallel message fetching for Gmail/Outlook export (12de963)
- display export expiration date in UI (5e1e633)
- expose outlookSubscription in account info API (0d97b51)
- accept base64-encoded nonces for backward compatibility (2c46822)
- add BullMQ stalled job configuration to prevent queue hangs (23a74c3)
- add labels to remaining Joi schemas for stable OpenAPI names (4e7e064)
- add null guards to prevent unhandled exceptions (9f48f64)
- address 14 bugs found since v2.61.5 (839ce55)
- address 5 release blockers for export and account APIs (762c201)
- address 6 critical/high bugs and make export limits opt-in (eb14c69)
- address critical, high, and medium export feature issues (576345a)
- address must-fix and should-fix issues for release (6def6ef)
- address verified warnings from release review (bb08f54)
- downgrade transient connection/timeout error logs to warn level (9064529)
- downgrade transient PubSub poll errors from error to warn (d9f2e2f)
- enrich OAuth token error messages for BullMQ job visibility (29da53f)
- force Swagger UI to light mode only (4c26d12)
- guard against null job in export worker BullMQ failed handler (4cb1532)
- handle missing attachments in ARF detection (fe08f6a)
- handle missing attachments in Outlook message conversion (46cf25a)
- handle non-iterable messageInfo.attachments in mailbox sync (3187571)
- handle notificationBaseUrl without trailing slash in prepareUrl (1048818)
- handle uncaught EPIPE in ResponseStream for SSE endpoints (ca7af4a)
- harden OAuth token request body serialization and error handling (296c4e9)
- improve BullMQ efficiency with jitter, retention, and cleanup (fb48fd8)
- improve packUid robustness with fallback and validation (4b4253e)
- improve submit resilience during worker restarts and add batch endpoint (f559c38)
- leverage Nodemailer error codes for better retry logic and UI messages (0f3068a)
- preserve threadId for large Gmail threaded replies via multipart upload (b04c2ca)
- prevent ArrayBuffer detachment and IMAP null reference errors (3b97372)
- prevent concurrent export race condition with atomic Redis operation (dbc14f6)
- prevent sync state corruption from invalid uidNext values (533f026)
- prevent sync state corruption from invalid uidValidity values (976fdb7)
- prevent UTF-8 data corruption in OAuth request Buffer handling (14361fd)
- reject invalid nonce format instead of silently regenerating (422ea5c)
- remove BullMQ job when marking interrupted exports as failed (ad587a7)
- replace blocking scryptSync with async scrypt in DecryptStream (c9c6ede)
- resolve 11 bugs in export functionality (f5d2621)
- resolve Gmail label IDs to human-readable names (02c306f)
- resolve OpenAPI spec validation errors for token restrictions (a9cffe1)
- restore retry for empty Buffer payloads and fix large threaded Gmail replies (107c164)
- return WorkerNotAvailable immediately and remove batch submit endpoint (aed5c45)
- revert jQuery to 3.7.1 and harden export resilience (43f2a74)
- send Buffer for Outlook sendMail base64 payload to avoid JSON quoting (e89a924)
- share Lock instance across Account objects to prevent Redis connection leak (56f421b)
- stabilize Swagger model names for SDK generation (8078830)
- tighten export route validation and apply default export limits (f45d83f)
- update test expectations for email-text-tools 2.3.5+ behavior (1e28abf)
- update test expectations for email-text-tools 2.4.x (6333fa3)
- use consistent index source in batch submit success and failure paths (3a73704)
- validate nonce format before using data.n from cached URLs (d825303)
- use MS Graph batch API for Outlook message export (f031f77)
- remove Swagger UI light mode forcing (9c9bd25)
2.61.5 (2026-01-15)
- use base64url encoding for OAuth state nonce in /v1/authentication/form (1f2cecf)
- use base64url encoding for OAuth state nonce in /v1/authentication/form (dead38c)
- use base64url encoding for OAuth state nonce in remaining locations (961b710)
2.61.4 (2026-01-14)
- handle delegation errors in loadAccountData, isApiClient, and UI listing (c306618)
- show Failed status for accounts with IMAP disabled due to auth errors (e6b687d)
2.61.3 (2026-01-14)
- prevent 500 error when listing accounts with invalid delegation config (8651bcc)
- update gettext script to include refactored UI route files (5b2e4a5)
2.61.2 (2026-01-12)
- add error logging for MS Graph subscription creation failures (ba928e4)
- add forced exit to prevent test timeout in CI (aeb7261)
- handle empty or invalid JSON responses from OAuth APIs (57d8886)
2.61.1 (2025-12-28)
- Memory leak fixes for IMAP client and webhooks worker (b749f96)
2.61.0 (2025-12-22)
- Add check-bounce CLI command for analyzing bounce emails (ae3a85d)
- Add Exim-style bounce detection for diagnostic messages (b82e588)
- Improve ARF complaint detection and add comprehensive tests (5533552)
- Improve autoreply detection and add comprehensive tests (1cf179f)
- Improve bounce detection coverage for non-standard formats (5393872)
- Improve bounce detection for legacy formats (90a0289)
- Replace static help.txt with dynamic CLI help system (4cd5fb0)
- Detect "Out of the Office" autoreply subject pattern (7191c50)
- Harden bounce detection against edge cases and ReDoS attacks (d6c72c2)
2.60.1 (2025-12-17)
- Enable NPM package publishing (051f4d6)
- Exclude browser-only deps from pkg bundle (994dd41)
- Wrap async close handler await calls in try-catch to prevent unhandled rejections (c6df321)
2.60.0 (2025-12-15)
- Add bounce message classification using ML model (e337ceb)
- Reduce production node_modules size by removing unused static-only deps (af9d584)
2.59.2 (2025-12-11)
- Bumped dependencies to get rid of security warnings (54b13c4)
2.59.1 (2025-12-10)
- Correct API schema documentation and descriptions (8a51465)
- Improve auth-server example with proper error handling and documentation (cef5b47)
- Increase openAiPrompt max size from 6KB to 1MB (29d673d)
2.59.0 (2025-12-08)
- Add dedicated page to view accounts assigned to IMAP worker threads (6d7e69e)
- Add MS Graph webhook subscription state metrics (3e3ad18)
- Add OAuth2 API metrics for MS Graph and Gmail backends (9a8182c)
- Add OAuth2 token refresh metrics to all refresh paths (4c23c90)
- Add Prometheus metrics and Grafana dashboard (e3d4088)
- Correct CPU usage chart unit from seconds to dimensionless (88765bc)
- Correct y-positions of Redis panels in Grafana dashboard (12fdeff)
- Fix OAuth2 token refresh metrics not being recorded (a6bf696)
- Rename IMAP worker to Email worker in thread display (95b39da)
2.58.2 (2025-11-24)
- Add EENGINE_DISABLE_SETUP_WARNINGS environment variable (933a4f7)
- Add environment variable support and deprecate unused OAuth2 fields (a63fa8b)
- AI: Add GPT-5 support with updated token limits (f99947a)
- Improve OAuth token refresh error handling and state management (5be242b)
- LLM integration: Add configurable max tokens setting for OpenAI API (a746388)
2.58.1 (2025-11-14)
- Add EENGINE_ENABLE_OAUTH_TOKENS_API environment variable support (be74bf9)
- outlook: Request specific body content type from MS Graph API (9428852)
- smtp-interface: Add configurable SMTP message size limit (c3692b9)
2.58.0 (2025-10-27)
- outlook: Add MS Graph API category support via labels API (7de3586)
- outlook: Add optional structured format for MS Graph sendMail (5062e84)
- gmail: Exclude OpenID scopes from service account authentication (faf7821)
- outlook: Improve delegated user handling and add clarifying comments (cef7d25)
- outlook: Preserve calendar invite functionality when sending via Graph API (92bd7f8)
- outlook: Use structured message format for Graph API sendMail to respect from field (c1bf874)
2.57.3 (2025-10-23)
- attachments: Bumped Nodemailer for fix issue with large data-uri images in emails (64a498c)
2.57.2 (2025-10-23)
- attachments: Bumped Nodemailer for fix issue with large data-uri images in emails (44cd002)
2.57.1 (2025-10-20)
- Add retry logic for transient errors when fetching referenced messages (9312f4b)
- Correct OpenAPI response schema and add Docker CLI support (38d39d6)
- Ensure mailbox ID persistence during flush (bb26992)
2.57.0 (2025-10-09)
- Add support for Gmail send-only accounts (#554) (47fb593)
- Add support for Outlook send-only accounts (6b63ee4)
2.56.0 (2025-10-05)
- api: Add mailbox subscription management to modify endpoint (4578c8a)
2.55.8 (2025-09-29)
- Fixed build (ac5d3b4)
2.55.7 (2025-09-29)
- Bumped email-text-tools to fix webSafe processing (ae6f2f1)
2.55.6 (2025-09-26)
2.55.5 (2025-09-19)
- outlook: Fix MS Graph webhook subscription expiration issues (1153313)
2.55.4 (2025-09-14)
- Replace v8.getHeapStatistics with process.memoryUsage to prevent SEGV errors (918dba7)
- Simplify memory display in internals page (8dc284b)
- Update internals page to handle new memory usage format (cf0de82)
2.55.3 (2025-09-11)
- Remove CPU metrics collection to prevent potential native code issues (350afc2)
- webhooks: Show more informational messages when webhooks fail (0712f0a)
2.55.2 (2025-09-03)
- oauth: Update Redis hash mapping when OAuth email changes (82c1d89)
- webhooks: Explicitly set Content-Length to prevent undici mismatch errors (40cb42d)
2.55.1 (2025-08-29)
- memory: Add LRU-based cleanup for SMTP connection pools (fba58e8)
- metrics: Implement background metrics collection to prevent CPU spikes (b0a200a)
- redis: Add recovery mechanism for disconnected accounts after Redis reconnection (ac9737a)
- redis: Improve Redis reconnection handling for IMAP workers (de7327e)
2.55.0 (2025-08-28)
- health: Add worker health monitoring with heartbeat system (34724e8)
- internals: Add CPU monitoring for worker threads (8aa9be5)
- resilience: Add circuit breaker pattern for worker communication (79ea27a)
- flush: Allow flushing non-connected accounts (07eebc5)
- imap: Fix uneven IMAP worker thread distribution (339f0e0)
- imap: Prevent 100% CPU usage from reconnection loops (4d1bf7d)
- internals: Handle unresponsive workers gracefully in admin internals page (2a2d94b)
- lint: Remove unused HEARTBEAT_INTERVAL constant and add npm lint script (19209ab)
- lua: Fix bugs and add documentation to Redis Lua scripts (1c4889f)
2.54.5 (2025-08-26)
- Bumped ImapFlow to decrease load on CPU (227894d)
- env: Added EENGINE_DISABLE_MESSAGE_BROWSER, fixed EENGINE_ADMIN_ACCESS_ADDRESSES regression bug (4d922ff)
- Fixed checking nil against a number (eee7294)
2.54.4 (2025-08-14)
- imap: Fixed subconnection error handling (5367c77)
- install: Fixed Redis password generation for the install script (bf5853e)
2.54.3 (2025-08-13)
- Bumped ImapFlow module for improved IMAP handling stability (5f7ce73)
2.54.2 (2025-08-05)
- dark mode support for message browser (59d3c31)
- delegated: Fixed mailbox listing for delegated OAuth2 accounts (9fc74fd)
- limit session token usage for the message browser (41ead92)
- message browser uses theme based confirm instead of sync javascript confirm (9409d2c)
- verify: Slightly faster account data verification (3e27d5e)
2.54.1 (2025-08-03)
- oauth2: Fixed issues with OAuth2 periodic renewals (subscriptions etc) (046bd55)
2.54.0 (2025-08-01)
- ui: Added message browser to account view (a1e27d8)
- move from OAS v2 to OAS v3 (49e7018)
- normalize OAuth2 subscription keys (a400e73)
- Show the token description on the delete token confirmation modal (495af4f)
2.53.3 (2025-07-17)
- delegated-oauth: Handle delegated MS Graph account properly if created using delegated=true (4cece01)
- MS-Graph: Fixed IMAP and SMTP hosts for Government Cloud accounts (e78a9cb)
- no-active-handler: Fixed response code 200 for No Active Handler response (067a37b)
- search: Prefer WITHIN extension and YOUNGER/OLDER for SINCE/BEFORE searches (34d5889)
2.53.2 (2025-07-09)
- language: Added language selection with ?locale=et query argument (b911ec3)
- no active handler: Return 503 error, not 200 (d1e0702)
- smtp: Improved Message-ID rewriting detection for AWS SES (fbe7ff3)
- Special envelope handling for LarkSuite accounts (f448d39)
2.53.1 (2025-07-04)
- multi-operations: Added new search term 'emailIds', if set it will use the predefined email IDs instead of executing the search (aac3aab)
- removed dotenv debug log line (9c5fc1b)
- webhooks: Include a HMAC signature in webhook headers (7516188)
2.53.0 (2025-06-30)
- Use persistent SMTP connections instead of logging separately for every email sent by the same account (866e24f)
- Bumped deps to fix formwat=flowed parsing issue (efffe4e)
2.52.6 (2025-06-23)
- Reverted ICOn handling for windows app (7abba87)
- submit: Added configuration ENV option EENGINE_SUBMIT_DELAY / --submitDelay=duration argument to allow rate limiting message sending (this is global, not account specific) (531caad)
- translations: Allow changing active language with ?lang=lang_code query argument (1f2a0e6)
2.52.5 (2025-05-20)
- virtual-list: Fixed authentication requirement for the public re-subscribe page (956fdfa)
2.52.4 (2025-05-13)
- encryption: Cache keys in memory to avoid using scrypt every time a secret is accessed (cbfcde5)
- message/rfc822: Fixed message/rfc822 attachment handling when sending emails (af2bf30)
- UI: prevent trying to format a non-existing timestamp value (d97bb92)
- webhooks: Include envelope property in messageSent for Gmail API and MS Graph API submissions (6b1a3fa)
2.52.3 (2025-05-01)
- gmail-api: Fixed special use label handling when updating messages (9e06ed7)
2.52.2 (2025-04-30)
- Allow adding shared MS accounts directly via the /v1/accounts endpoint (c77e61e)
- Dutch translations (#526) (ebbd783)
- schema: Updated settings schema descriptions. Added imapClient... setting keys to configure RFC2971 IMAP ID extension (bc38322)
2.52.1 (2025-04-18)
- messageBounce: Check messages in the Junk folder as well for bounces (0def3e3)
- workmail: better detection of bounce emails with AWS WorkMail (1a8e750)
2.52.0 (2025-04-10)
- sending: Support 'Idempotency-Key' header for /submit message requests and 'X-EE-Idempotency-Key' SMTP header to avoid sending duplicate emails (1423135)
- gmail-api: Show a failure message if OAuth2 configured scopes are insufficient (f72b5f3)
- markAsSeen: fix markAsSeen option for Gmail API and MS Graph API (7e2dcdc)
- ms-graph-api: Fix fetching message/rfc822 attachments (c55bcbd)
2.51.3 (2025-03-26)
- gmail-watch: Allow setting subscription name for Gmail PubSub (529f698)
- gmail-watch: Log and show information watch renewal failures (7a59ce9)
- websafe: Process web safe HTML before injecting base64 attachments to speed the process up (b04d0fe)
2.51.2 (2025-03-25)
- google-oauth: Allow to specify the PubSub Topic Name instead of using the autogenerated value (41f362b)
- imap-proxy: Fixed regression bug in IMAP proxy interface (612d9f9)
2.51.1 (2025-03-17)
- connection-counter: Only decrease connection counter if a connection was actually removed (d402888)
2.51.0 (2025-03-07)
- schema updates for message update (4d293a1)
- webhook-routing: Do not throw 500 when viewing a failing webhook routing page (a8acde2)
2.50.10 (2025-02-24)
- maintenance release (bed7e16)
2.50.9 (2025-02-23)
- docker: reverted docker release action (c205aae)
2.50.8 (2025-02-22)
- inline-html: Fixed reply and forward inline emails if only text was set (2efaa77)
2.50.7 (2025-02-11)
- api: Added new method to list Gmail signatures for an account (c7e379a)
- notificationBaseUrl: Allow using a path component in the base URL (d2af058)
- submit: Added new message reference action 'reply-all' (b0bd69f)
2.50.6 (2025-02-10)
- dockerfile: Unpin Node version (4feb420)
- docker: Pin Node version in Dockerfile (decb751)
- docker: Publish tags to Github Registry as well (24db762)
2.50.5 (2025-02-04)
- api: Improved message-move API endpoint for Gmail API accounts. There is now a new payload option 'source' that specifies the folder the message is moved from (861bc23)
- gmail-api: clear label cache after modifying labels (ca60f89)
- oauth: Return 'id' not 'message' for message upload requests against Gmail API and MS Graph API (d1bd122)
- worker-close: If worker dies then do not try to update accounts statuses to prevent race conditions (d532365)
2.50.4 (2025-01-29)
- deps: Bumped ImapFlow to improve handling of unstable IMAP connections (3dfa5fa)
- ms-graph: Added new setting notificationBaseUrl to set a different webhook URLs for MS Graph notificationUrl and lifecycleNotificationUrl than serviceUrl (0963041)
- translations: Added Polish translations; Merge pull request #497 from jakubmieszczanin/master (b0b29e5)
2.50.3 (2025-01-26)
- redis: Tolerate Redis reconnections better (5d3627c)
2.50.2 (2025-01-23)
- filename: Fixed filename handling for message responses from servers without parameter continuation support (1463506)
- oauth-smtp: Fixed authentication username for shared outlook SMTP accounts (c4ca913)
2.50.1 (2025-01-19)
- web: Fixed preview function for public website templates in the admin UI (6f3567b)
2.50.0 (2025-01-13)
- oauth2-apps: Added search field to the OAuth2 application listing page to search OAuth2 applications (69144fe)
- ms-graph-api: Fixed plaintext content handling when retrieving emails from MS Graph API (0166a0a)
2.49.7 (2025-01-09)
- imap-auth: Bumped ImapFlow dependency to fix issue with AUTHENTICATE LOGIN on some IMAP servers (c1a5fba)
2.49.6 (2025-01-08)
- deps: Bumped ImapFlow to handle invalid BODYSTRUCTURE from BlueMind (1174a29)
- http-requests: Use undici RetryAgent for HTTP request network errors and 429 rate limiting, removed custom 429 handler (bafcd1c)
- message-upload: Fix message upload if uploading to a child folder of Inbox using MS Graph API (2c14b5e)
- ms-graph-api: Upload message as a JSON structure instead of EML with MS Graph API in order to set meta info like flags (c7fde6f)
- ui: Replaced 2024 with 2025 in static HTML pages (99e805b)
2.49.5 (2024-12-30)
- Auth-server: Ensure correct oauth2 username and history ID for accounts added with auth server (aa68c0d)
- oauth-flow: Fixed page title on the redirect page after OAuth2 code has been received (b2c0c5a)
- templates: Allow setting brand name to replace 'EmailEngine' in the HTML title (bf85c06)
2.49.4 (2024-12-13)
- cors: Removed custom OPTIONS preflight handler in favor of default Hapi CORS handler (6427728)
- oauth2: Fixed field encryption for OAuth2 apps (a0c3eaa)
2.49.3 (2024-12-09)
- gmail-api: Fixed attachment forwarding when using Gmail API (6aef655)
- gmail-api: Fixed threading for replied messages when using Gmail API (2b4d5bb)
2.49.2 (2024-12-03)
- deps: Downgraded elasticsearch dependency to avoid including ESM dependencies (78d6aed)
2.49.1 (2024-12-03)
- delivery-test: Fixed gateway usage with delivery tests (ec94223)
- deps: Bumped email-text-tools to fix failing preProcessHtml and webSafeHtml (4de02ae)
- Prevent throwing an exception if serviceUrl is not set (e947a0b)
2.49.0 (2024-11-10)
- delegated-accounts: Allow using credentials from another existing account for a shared MS365 mailbox account (fc17b02)
- delegated-accounts: Allow using delegated MS Graph API accounts; pull request #475 from postalsys/shared-ms-api (f0627e9)
- gateway: Fixed gateway based sending for API accounts (86c2c02)
2.48.7 (2024-11-07)
- gateway: Fixed gateway testing (6c29c87)
- imap-auth: Always use username and password as string, not atom for LOGIN command (1064d1f)
- imap-auth: Prefer AUTH=LOGIN and AUTH=PLAIN to LOGIN for better compatibility of special characters (7e09d2d)
2.48.6 (2024-11-01)
- admin: Fixed pagination URL for oauth2 listing (4140e34)
- outlook-api: Falls back to username as account email if failed to retrieve account email address (57f3d82)
- stats: Correctly detect account state for Gmail/MS Graph API accounts (a5af1de)
2.48.5 (2024-10-31)
- hosted-authentication: If a user tries to add an hotmail/outlook account with a password, show a warning about MS disabling password based auth (dd0407e)
- outlook-api: Detect if message is from Inbox when processing messageNew webhook (2a72aa0)
- outlook-api: If mail property is not provided in user profile, then use userPrincipalName instead (2e2224c)
- redis: Do not use Redis connectionName to avoid calling CLIENT command (aafc732)
2.48.4 (2024-10-25)
- account-state: Only swiths to disconnected if the account was previously connected (4f56fe3)
- outlook-api: Fixed missing redis object (c248e49)
2.48.3 (2024-10-25)
- change-events: Trigger a 'disconnected' event when an account is deleted and the connection is closed (bf56440)
- oauth-api: Do not try to convert null to string when making an OAuth2 API request (5231327)
- outlook-api: Ensure seemsLikeNew value for new message webhooks (16e12c0)
- outlook-search: Allow using $search instead of $filter by setting the useOutlookSearch query argument (3a0d75e)
- redis: Do not set connection name to prevent calling CLIENT.SETNAME command (166a947)
2.48.2 (2024-10-23)
- metrics: Ensure that unassigned accounts are included in the 'disconnectedä state count (d502425)
- metrics: Include thread counts in Prometheus output (04e978e)
- oauth2: Allow to specify to show only Google Workspace accounts on OAuth2 login screen (a3b2412)
- submit: Added additional and optional reference field 'messageId'. If set then this value is validated against the Message-ID header of the referenced email (8d76345)
2.48.1 (2024-10-18)
- certs: Show a proper error response for failed ACME validation requests (71dfeba)
- oauth-api: Use a default cloud value for outlook OAuth2 apps if AzureCloud is not specified (1affc1d)
- oauth2: Double check if OAuth2 account is actually already used before throwing AccountAlreadyExists error (3f967a9)
2.48.0 (2024-10-14)
- imap: Added new IMAP indexing option: 'fast' (1d6df05)
- outlook: Fixed Outlook OAuth2 connection (920aa20)
2.47.0 (2024-10-07)
- bullmq: Replaced Bull Arena with Bull Board (e6762b9)
- oauth: Added 'useAuthServer' support for API based email accounts (04c2aa9)
- swagger: Use embedded Swagger UI instead of Iframe (ce9fd6a)
- templates: Allow to inject HTML code to the <head> tag of the public pages like authentication form or 404 error page (bd97a7c)
2.46.5 (2024-09-25)
- release: Use node v20 for prepackaged binaries (ed2a161)
2.46.4 (2024-09-23)
- search: Fixed resolving special use paths like \All (3fb0c9c)
- security: Generate Fluid-Attacks SAST Scan Results (5780708)
- security: Replaced node-gettext with @postalsys/gettext (a13378a)
2.46.3 (2024-09-10)
- security: Allow limiting IP addresses that are allowed to access /admin paths (7b64009)
2.46.2 (2024-09-07)
- oauth2-api: Set default value for Outlook OAuth2 cloud property when creating a new OAuth2 app via API (d4e1993)
- Upgraded dependencies (abb9edf)
2.46.1 (2024-09-04)
- click-open-tracking: Allow to configure clicks and opens tracking separately with trackOpens and trackClicks options (1cc55bc)
2.46.0 (2024-08-29)
- autoconf-validation: If autoconfig does not respond with full settings, do not auto-attempt configuration check (cdc5765)
- autoconfig: Added configuration information for ATT email accounts (729de83)
- imap: Disable IMAP syncing if authentication fails too many times (def4404)
- link-tracking: Fixed unsubscribe links when click tracking is enabled (34cdc38)
2.45.1 (2024-08-23)
- Fixed a bug with invalid logger object (e44de90)
2.45.0 (2024-08-22)
- deps: Bumped dependencies to fix web safe HTML (7b20aff)
- Use no-referrer policy for all _blank links (eef5757)
2.44.1 (2024-08-15)
- oauth2: Fixed Gmail API OAuth2 schema (205f34e)
2.44.0 (2024-08-15)
- app-password: Add T-Online to providers needing an app password (#430) (823939b)
- oauth-tokens: Fix renewal check for access tokens (f687aa1)
- outlook-oauth: Show 'supported account types' as a selectable list instead of a text field input (fe62e5b)
2.43.3 (2024-08-01)
- cors: Added missing OPTIONS handler for CORS (205480d)
2.43.2 (2024-07-29)
- reconnect: Allow reconnecting paused accounts (b8e212f)
2.43.1 (2024-07-21)
- api-docs: Updated information about total/pages/nextPageCursor (cd12547)
- cli: Added command 'export' to retrieve raw account data with credentials (9932801)
- gmail-api: Fixed webhook notifications for authenticationSuccess and authenticationError (2c3d63a)
- gmail-api: Log API requests to user log (f00f864)
- oauth2: Fixed broken extra scopes handling (9185359)
2.43.0 (2024-07-08)
- api: Added support for paging cursors (d3f7685)
- api: Do not allow to proxy connections for accounts with API scopes (9498fa9)
- Fix exception when Document Store is disabled but there are embeddings stored (6d18a48)
- font-loading: Use a locally cached font instead of loading from Google FOnts (4e53929)
- model-labels: Model label improvements to have named models instead (dc75dbc)
- paging: Fixed paging links for OAuth2 apps (d698082)
- templates: Allow running template API requests with account tokens (dd2da5b)
2.42.0 (2024-05-30)
- gmail-api: Alpha version of Gmail API support (f7fd60a)
- ts: Fixed API schema to pass TypeScript SDK generation (29493ac)
2.41.4 (2024-05-15)
- env: Fixed EENGINE_MAX_PAYLOAD_TIMEOUT handling (feaa0d2)
2.41.3 (2024-05-08)
- empty-listing: Treat empty LIST or LSUB response as an error condition (53e3bc9)
- imapflow: Bumped ImapFlow to prevent IDLE deadlocks (869db0a)
- lua: Fixed lua script to calculate total number of matching accounts for a query (a4284c5)
- render: Updated Render deployment blueprint (031a457)
2.41.2 (2024-04-19)
- sync: send webhooks for old messages during first sync (5d05986)
2.41.1 (2024-04-12)
- deps: Bumped dependencies to clean up dependency tree (forgot before previous release) (6d8ab9a)
2.41.0 (2024-04-11)
- custom-account-headers: Allows setting account specific custom webhook headers (f4c4c8b)
- account-form: Added support for 'path' in the authentication form (198ba41)
- accountPath: Use an array by default as the path type (3faa977)
- web-ui: Do not clear up IMAP settings when enabling/disabling IMAP in the web UI (037091b)
2.40.9 (2024-04-03)
- oauth2: Show access token validity period on account details page (6cee85f)
- oauth2: Show OAuth2 error on account page if token renewal failed due to invalid grant (70f7bc8)
- ui-tweak: Automatically reconnect an account if log settings are updated via UI (4d4be15)
2.40.8 (2024-03-24)
- reconnect: Force close previous connection if reconnect was requested (ec0baf1)
- smtp: Do not override From: header in an email from SMTP interface (69f6c32)
2.40.7 (2024-03-20)
- gmail-smtp: Fix failing SMTP connections for Gmail (c3dd63a)
2.40.6 (2024-03-20)
- account-listing: Show accounts as initializing if account has not yet been processed after startup (0e70898)
- connection: Do not wait for subconnections when setting up the connection (d8daff8)
- oauth2-error: If OAuth2 app is failing then show an indication about it on the account page (dd44cd5)
2.40.5 (2024-03-16)
- reconnection: Tweaked reconnection logic on errors (95067c5)
2.40.4 (2024-03-14)
- connections: Added additional logging to detect broken reconnections (bfe6229)
2.40.3 (2024-03-08)
- fetch: allow to configure max fetch batch size with an ENV value (de45851)
- fetch: Allow to set the fetch batch size limit with a cli argument (f5daf91)
- fetch: If fetch fails while syncing, then set a warning flag and try again (ffcb559)
- fetch: use batches when fetching message entries for indexing (1e83e64)
2.40.2 (2024-03-04)
- mime: Use custom MIME boundary pattern for generated emails (0e2a110)
- webhooks: include network routing information in messageSent, messageDeliveryError and messageFailed webhooks (16bd82d)
2.40.1 (2024-02-26)
- network: Fixed failing network scan for detecting local IP addresses (048358d)
2.40.0 (2024-02-23)
- connections: If EmailEngine is syncing an account then use a secondary IMAP connection to serve API requests (965b63c)
- path: Account path argument can take either a path string, or an array of strings to monitor multiple folders instead of just one (a7c6abc)
- submit: Allow to set proxy url and local address when submitting emails for delivery (af1d253)
- config: Properly parse time values from EENGINE_MAX_PAYLOAD_TIMEOUT config option (c3f5ac7)
2.39.11 (2024-02-18)
- llm: LLM processing did not work (28973d4)
2.39.10 (2024-02-12)
- message-upload: improvements regarding empty From header (45df0fd)
2.39.9 (2024-02-03)
- build: fixed broken build (ae43242)
2.39.8 (2024-02-02)
- deps: bumped deps to clear vulnerability notifications (fbe71ff)
- deps: bumped imapflow (c79d160)
- document-store: Added deprecation notice (1ed38d8)
- outh2-apps: Allow to clear display title and description (f04b115)
- submit-timeout: Allow to configure HTTP POST timeout for submit and message upload API endpoints (previous default 10s) (89f0f01)
- translations: Added Japanese translation file for gettext (hosted authentication form) (4bc743a)
- translations: Moved all field validation error translations into a separate project (joi-messages) (5cb0c61)
2.39.7 (2024-01-15)
- cookies: do not validate cookies to prevent 'invalid cookie value' error for 3rd party cookies (a869640)
- submit: allow empty string as address name (4d6b276)
- webhooks: fixed text.html field for messageNew if notifyWebSafeHtml is true (47e64a8)
2.39.6 (2024-01-03)
- redis-locks: Bumped ioredfour to fix issue with Redis servers where WITH is disabled (b53007a)
2.39.5 (2024-01-03)
- api: Added quota information to account info response (6341400)
- api: enforce numbers as integers in the validation schema (84298c8)
- documentstore: prevent throwing an error when fetching an empty email (c3dc0b6)
- settings: Ensure setting service url and timezone if not set (27faad9)
2.39.4 (2023-12-15)
- redis: Show a warning on the dashboard if Amazon ElastiCache is used as the database (814e724)
- redis: Show warning when using Redis Cluster (17b599e)
2.39.3 (2023-12-12)
- llm: Do not try to process an email without message contents (9e4cbdc)
- oauth2-outlook: Enforce account selection when authenticating OAuth2 connections for MS365 (1c6b56a)
- redis: Fixed Redis stats collections when using Upstash Redis (9730123)
2.39.2 (2023-11-29)
- llm: Allow to load available models from the OpenAI models API endpoint (00fffda)
- metrics: added Redis Latency metric (aba2dab)
- redis-latency: show latency for Redis commands in the dashboard (65fa362)
2.39.1 (2023-11-24)
- error-messages: Form validation errors did not show limit number properly (d939955)
- imap: Allow to define IMAP TCP socket timeout with the EENGINE_IMAP_SOCKET_TIMEOUT env value (4d29d20)
- smtp-verify: Fixed accessToken usage for verifying SMTP account settings (0cd38f2)
2.39.0 (2023-11-06)
- api: Allow to override EENGINE_TIMEOUT value for a single API request (9a3aec3)
- tls: Allow to set TLS settings for API server (67f5aa3)
- authentication-form: Prevent re-using the same authentication form url (b13d9b9)
- cors: Do not override default CORS headers (e5a2f50)
- file-ui: Do not use a 'file' input element, instead use a button that triggers file select dialog to select files (14a9fe3)
- ui: small tweaks (8cb6034)
2.38.1 (2023-10-27)
- docker: fixed docker autobuild (ae0f3ab)
2.38.0 (2023-10-26)
- oauth: Allow to disable base OAuth2 scopes like SMTP.Send (ef89d83)
- openai: Allow to set custom models using the API (not in UI) (858f48b)
- openai: Allow to specify custom API url for OpenAI API requests (047647d)
- tls: Allow to ignore IMAP/SMTP TLS certificate errors by default using the ignoreMailCertErrors setting (cba8ffe)
- special-use-flags: Added support for user-specified Archive special use tag (a107f23)
- throttling: Retry throttled FETCH commands a few times before giving up (c3d259a)
2.37.7 (2023-10-20)
- chat: use topic instead of question for the filtering embedding (3acebc3)
- initialization: Start all IMAP worker threads before assigning accounts (9b4c3fc)
- stats: added missing counters for messageNew/messageDeleted (3f9f4cd)
2.37.6 (2023-10-17)
- about: Added a dedicated page for license and legal information (077b38f)
- accountCounters: added counters object that contains cumulative counter of all account specific triggered events (67613a3)
- documentstore: do not report missing email as an error (58130c7)
- license: added a section to the license about source code usage (a923d3b)
2.37.5 (2023-10-11)
- chat: Fixed chat feature support for older Redis versions (86538ba)
- default_conf: Ensure default config values for notifyText, notifyTextSize, and enableApiProxy (b7b4d9c)
- license: allow selecting license key from a file instead of copying (d813e35)
2.37.4 (2023-10-05)
- docker: fixed docker tags, added missing v prefix to version tags (481bf5c)
2.37.3 (2023-10-05)
- docker: fixed docker tagged release process (f23cde0)
2.37.2 (2023-10-03)
- chat: Bumped dependency to better parse output from OpenAI API (0250da8)
2.37.1 (2023-10-02)
- chat: Added 'try it' button to 'chat with emails' config page (0f23c39)
- chat: Improved 'chat with emails' response quality by sorting and filtering embeddings vectors (de429d6)
2.37.0 (2023-09-29)
- secrets: removed deprecated vault support (8ab9d60)
- chat: Use separate settings page for 'chat with emails' feature (c66e3ba)
- deploy: Build packages with Node 20 (a394cf2)
- package-lock: Do not delete package lock. Use 'npm ci' to install dependencies (752be23)
2.36.1 (2023-09-20)
- deploy: keep package-lock.json (ec311e3)
2.36.0 (2023-09-20)
- ai: Allow using embeddings generation without prompting (b59e702)