# Changelog Notable changes to Mailpit will be documented in this file. ## [v1.29.2] ### Security - Prevent Server-Side Request Forgery (SSRF) via Link Check API ([GHSA-mpf7-p9x7-96r3](https://github.com/axllent/mailpit/security/advisories/GHSA-mpf7-p9x7-96r3)) ### Chore - Upgrade eslint JavaScript linting - Update Go dependencies - Update node dependencies - Update caniemail test database ### Fix - Update install instructions when setting INSTALL_PATH - Include 8BITMIME in SMTPD EHLO response ([#648](https://github.com/axllent/mailpit/issues/648)) ## [v1.29.1] ### Chore - Add CORS error logging and update error messages for failed CORS requests - Bump axios from 1.13.4 to 1.13.5 - Update Go dependencies - Update node dependencies ### Fix - Enable "Mark all read" button (Inbox) when new message is received ## [v1.29.0] ### Feature - Include message attachment checksums (MD5, SHA1 & SHA254) in API message summary - Option to display/hide attachment information in message view in web UI including checksums, content type & disposition ### Chore - Add support for multi-origin CORS settings and apply to events websocket ([#630](https://github.com/axllent/mailpit/issues/630)) - Add support for webhook delay ([#627](https://github.com/axllent/mailpit/issues/627)) - Update Go dependencies - Update node dependencies ### Test - Add CORS tests - Add message summary attachment checksum tests ## [v1.28.4] ### Chore - Increase allowed SMTP email address length to 1024 chars & return clearer SMTP responses for failures ([#620](https://github.com/axllent/mailpit/issues/620)) - Update Go dependencies - Update node dependencies ### Fix - Ensure SMTP HELO/EHLO command is issued before MAIL FROM as per RFC 5321 ([#621](https://github.com/axllent/mailpit/issues/621)) - Prevent nested MAIL command during an active SMTP transaction ([#623](https://github.com/axllent/mailpit/issues/623)) - Avoid error on image type assertion in thumbnail generation ## [v1.28.3] ### Security - Ensure SMTP TO & FROM addresses are RFC 5322 compliant and prevent header injection ([GHSA-54wq-72mp-cq7c](https://github.com/axllent/mailpit/security/advisories/GHSA-54wq-72mp-cq7c)) - Prevent Server-Side Request Forgery (SSRF) via HTML Check API ([GHSA-6jxm-fv7w-rw5j](https://github.com/axllent/mailpit/security/advisories/GHSA-6jxm-fv7w-rw5j)) ### Chore - Fix formatting and update reporting instructions in SECURITY.md ([#614](https://github.com/axllent/mailpit/issues/614)) - Allow `@` character in message tags & set max length to 100 characters per tag - Update Go dependencies - Update node dependencies ### Fix - Correctly render default addresses in release modal after settings change ([#594](https://github.com/axllent/mailpit/issues/594)) - Correctly detect macOS group in install.sh ([#619](https://github.com/axllent/mailpit/issues/619)) - Auto-tagging using SMTP username using plain auth ([#617](https://github.com/axllent/mailpit/issues/617)) - Validate maximum lengths of email addresses - RFC5321 (section 4.5.3.1) ### Test - Update tag tests with length limits and `@` character - Add SMTP tests for address compliancy (RFC 5322) and header injection - Add maximum email length validation tests - RFC5321 (section 4.5.3.1) ## [v1.28.2] ### Security - Prevent Cross-Site WebSocket Hijacking (CSWSH) allowing unauthenticated access to message data [CVE-2026-22689](https://github.com/axllent/mailpit/security/advisories/GHSA-524m-q5m7-79mm) ### Feature - Allow default mail addresses to be set when releasing message ([#594](https://github.com/axllent/mailpit/issues/594)) ### Chore - Remove webkit warnings about missing template / render functions - Avoid empty URL query parameter when returning to inbox from message view ## [v1.28.1] ### Security - Restrict screenshot proxy to only support asset links contained in messages [CVE-2026-21859](https://github.com/axllent/mailpit/security/advisories/GHSA-8v65-47jx-7mfr) ### Chore - Bump actions/checkout from 5 to 6 ([#610](https://github.com/axllent/mailpit/issues/610)) - Bump actions/cache from 4 to 5 ([#607](https://github.com/axllent/mailpit/issues/607)) - Bump actions/stale from 10.0.0 to 10.1.1 ([#604](https://github.com/axllent/mailpit/issues/604)) - Bump actions/setup-node from 5 to 6 ([#598](https://github.com/axllent/mailpit/issues/598)) - Bump esbuild from 0.25.12 to 0.27.2 ([#611](https://github.com/axllent/mailpit/issues/611)) - Update Go dependencies - Update node dependencies ### Test - Add inline message tests - Increase swagger test timeout ## [v1.28.0] ### Feature - Optionally propagate SMTP errors ([#588](https://github.com/axllent/mailpit/issues/588)) ### Chore - Update Go dependencies - Update node dependencies - Update caniemail test database ## [v1.27.11] ### Chore - Update Go dependencies - Update node dependencies - Add type assertion for value in imaging assignment ## [v1.27.10] ### Security - Prevent potential information disclosure via indirect expvar library (Prometheus) ### Chore - Add tooltip to messages nav dropdown - Update GitHub Actions - Add tooltip to messages nav dropdown - Update GitHub Actions - Update Go dependencies - Update node dependencies ## [v1.27.9] ### Chore - UI tweaks to pagination layout for clearer navigation ([#568](https://github.com/axllent/mailpit/issues/568)) - Add margin to icons in release and delete buttons for consistent spacing - Update navbar theme to use data-bs-theme attribute for consistency - Update Go dependencies - Update node dependencies ## [v1.27.8] ### Chore - Update Go dependencies - Update node dependencies - Update caniemail test database ## [v1.27.7] ### Fix - Move HELO/EHLO hostname setting to the correct position in SMTP client creation ([#558](https://github.com/axllent/mailpit/issues/558)) ## [v1.27.6] ### Feature - Add optional --no-release-check to version subcommand ([#557](https://github.com/axllent/mailpit/issues/557)) ### Chore - Set HELO/EHLO hostname when connecting to external SMTP server ([#556](https://github.com/axllent/mailpit/issues/556)) - Update Go dependencies - Update node dependencies ## [v1.27.5] ### Chore - Update Go dependencies - Update node dependencies - Update caniemail test database ### Fix - Support optional UIDL argument in POP3 server ([#552](https://github.com/axllent/mailpit/issues/552)) ## [v1.27.4] ### Feature - Allow rejected SMTP recipients to be silently dropped ([#549](https://github.com/axllent/mailpit/issues/549)) ### Chore - Update Go dependencies - Update node dependencies - Update caniemail test database ## [v1.27.3] ### Fix - Fix sendmail when using an `--smtp-addr :` ([#542](https://github.com/axllent/mailpit/issues/542)) ## [v1.27.2] ### Security - Prevent integer overflow conversion to uint64 - Add ReadHeaderTimeout to Prometheus metrics server ### Feature - Add ability to generate self-signed (snakeoil) certificates for UI, SMTP and POP3 ([#539](https://github.com/axllent/mailpit/issues/539)) ### Chore - Allow sendmail to send to untrusted TLS server - Update eslint config, remove neostandard - Refactor JS functions and remove unused parameters - Update Go dependencies - Update node dependencies ### Fix - Use MaxMessages to determine pruning ([#536](https://github.com/axllent/mailpit/issues/536)) - Support angle brackets for text/plain URLs with spaces ([#535](https://github.com/axllent/mailpit/issues/535)) - Do not check latest release for Prometheus statistics ([#522](https://github.com/axllent/mailpit/issues/522)) ## [v1.27.1] ### Chore - Allow unknown href link protocols in HTML view such as myapp:// ([#532](https://github.com/axllent/mailpit/issues/532)) - Update Go dependencies - Update node dependencies ## [v1.27.0] ### Chore - Remove unused functionality/deadcode (golangci-lint) - Refactor error handling and resource management across multiple files (golangci-lint) - Refactor API Swagger definitions and remove unused structs - Bump minimum Go version to v1.24.3 for jhillyerd/enmime/v2 - Switch version checks & self-updater to use ghru/v2 - Update Go dependencies - Update node dependencies ### Fix - Align websocket new message values with global Message Summary (no null values) ([#526](https://github.com/axllent/mailpit/issues/526)) ## [v1.26.2] ### Feature - Store username with messages, auto-tag, and UI display ([#521](https://github.com/axllent/mailpit/issues/521)) - Allow version checking to be disabled ([#524](https://github.com/axllent/mailpit/issues/524)) ### Chore - Apply linting to all JavaScript/Vue files with eslint & prettier - Update Go dependencies - Update node dependencies ### Fix - Improve version polling, add thread safety and exponential backoff ([#523](https://github.com/axllent/mailpit/issues/523)) ### Test - Add JavaScript linting tests to CI - Add Go linting (gofmt) to CI ## [v1.26.1] ### Feature - Add relay config to preserve (keep) original Message-IDs when relaying messages ([#515](https://github.com/axllent/mailpit/issues/515)) ### Chore - Update Go dependencies - Update node dependencies - Update caniemail testing database ### Fix - Add optional message_num argument in POP3 LIST command ([#518](https://github.com/axllent/mailpit/issues/518)) - Use float64 for returned SQL value types for rqlite compatibility ([#520](https://github.com/axllent/mailpit/issues/520)) ### Test - Add small delay in POP3 test after disconnection to allow for background deletion in rqlite - Add automated tests using the rqlite database ## [v1.26.0] ### Feature - Send API allow separate auth ([#504](https://github.com/axllent/mailpit/issues/504)) - Add Prometheus exporter ([#505](https://github.com/axllent/mailpit/issues/505)) ### Chore - Add MP_DATA_FILE deprecation warning - Update Go dependencies - Update node dependencies ### Fix - Ignore basic auth for OPTIONS requests to API when CORS is set - Fix sendmail symlink detection for macOS ([#514](https://github.com/axllent/mailpit/issues/514)) ## [v1.25.1] ### Chore - Switch from unnecessary float64 to uint64 API values for App Information, message & attachment sizes - Extend latest version cache expiration from 5 to 15 minutes - Lighten outline-secondary buttons in dark mode - Add note to swagger docs about API date formats - Update Go dependencies - Update node dependencies ### Fix - Update bootstrap5-tags to fix text pasting in message release modal ([#498](https://github.com/axllent/mailpit/issues/498)) ## [v1.25.0] ### Feature - Add option to hide the "Delete all" button in web UI ([#495](https://github.com/axllent/mailpit/issues/495)) ### Chore - Upgrade to jhillyerd/enmime/v2 - Switch yaml parser to github.com/goccy/go-yaml - Tweak UI to improve contrast between read & unread messages - Adjust UI margin for side navigation - Update Go dependencies - Update node dependencies - Update caniemail database ### Fix - Include SMTPUTF8 capability in SMTP EHLO response ([#496](https://github.com/axllent/mailpit/issues/496)) ### Documentation - Switch to git-cliff for changelog generation - Add Message ListUnsubscribe to swagger / API documentation ([#494](https://github.com/axllent/mailpit/issues/494)) ## [v1.24.2] ### Feature - Display unread count in app badge ([#485](https://github.com/axllent/mailpit/issues/485)) ### Chore - Install script improvements & better error handling ([#482](https://github.com/axllent/mailpit/issues/482)) - Update Go dependencies - Update node dependencies - Update caniemail database ## [v1.24.1] ### Feature - Add ability to mark all search results as read ([#476](https://github.com/axllent/mailpit/issues/476)) ### Chore - Bump node version to 22 for binary releases - Improve error message for From header parsing failure ([#477](https://github.com/axllent/mailpit/issues/477)) - Update Go dependencies - Update node dependencies ## [v1.24.0] ### Feature - Add TLS relay support and refactor relay function ([#471](https://github.com/axllent/mailpit/issues/471)) - Add TLS forwarding support and refactor forwarding function ### Chore - Update Go dependencies - Standardize error message casing - Update Go dependencies - Update node dependencies ## [v1.23.2] ### Chore - Update node dependencies - Use `Message-ID` header instead of `Message-Id` when generating new IDs (RFC 5322) - Improve inline HTML Check style detection ([#467](https://github.com/axllent/mailpit/issues/467)) - Update Go dependencies ### Test - Add tests for inline HTML Checks ## [v1.23.1] ### Chore - Replace PrismJS with highlight.js for HTML syntax highlighting - Update Go dependencies - Update node dependencies ### Fix - Allow searching messages using only Cyrillic characters ([#450](https://github.com/axllent/mailpit/issues/450)) - Prevent cropping bottom of label characters in web UI ([#457](https://github.com/axllent/mailpit/issues/457)) ## [v1.23.0] ### Feature - Add configuration to set message compression level in db (0-3) ([#447](https://github.com/axllent/mailpit/issues/447) & [#448](https://github.com/axllent/mailpit/issues/448)) - Add configuration to explicitly disable HTTP compression in web UI/API ([#448](https://github.com/axllent/mailpit/issues/448)) - Add configuration to disable SQLite WAL mode for NFS compatibility ### Chore - Avoid shell in Docker health check ([#444](https://github.com/axllent/mailpit/issues/444)) - Handle BLOB storage for default database differently to rqlite to reduce memory overhead ([#447](https://github.com/axllent/mailpit/issues/447)) - Optimize ZSTD encoder for fastest compression of messages ([#447](https://github.com/axllent/mailpit/issues/447)) - Minor speed & memory improvements when storing messages - Update Go dependencies - Update node dependencies ### Fix - Display the correct STARTTLS or TLS runtime option on startup ([#446](https://github.com/axllent/mailpit/issues/446)) ### Test - Add tests for message compression levels ## [v1.22.3] ### Feature - Add dump feature to export all raw messages to a local directory ([#443](https://github.com/axllent/mailpit/issues/443)) ### Chore - Specify Docker health check start period and interval ([#439](https://github.com/axllent/mailpit/issues/439)) - Update Go dependencies - Update node dependencies ### Fix - Replace TrimLeft with TrimPrefix for webroot path handling ([#441](https://github.com/axllent/mailpit/issues/441)) - Include font/woff content type to embedded controller - Update Swagger JSON to prevent overflow ([#442](https://github.com/axllent/mailpit/issues/442)) - Correctly detect maximum SMTP recipient limits, add test ## [v1.22.2] ### Chore - Replace http.FileServer with custom controller to correctly encode gzipped error responses for embed.FS - Enable browser cache for embedded web UI assets - Update Go dependencies - Update node dependencies / esbuild ### Fix - Remove recursive HTML regeneration in embedded HTML view ([#434](https://github.com/axllent/mailpit/issues/434)) - Add missing "latest" route to message attachment API endpoint ([#437](https://github.com/axllent/mailpit/issues/437)) ## [v1.22.1] ### Feature - Add optional UI setting to skip "Delete all" & "Mark all read" confirmation dialogs([#428](https://github.com/axllent/mailpit/issues/428)) - Add optional query parameter for HTML message iframe embedding ([#434](https://github.com/axllent/mailpit/issues/434)) ### Chore - Bump actions/stale from 9.0.0 to 9.1.0 ([#432](https://github.com/axllent/mailpit/issues/432)) - Add API CORS policy to HTML preview routes ([#434](https://github.com/axllent/mailpit/issues/434)) - Update Go dependencies - Update node dependencies ## [v1.22.0] ### Feature - Add Chaos functionality to test integration handling of SMTP error responses ([#402](https://github.com/axllent/mailpit/issues/402), [#110](https://github.com/axllent/mailpit/issues/110), [#144](https://github.com/axllent/mailpit/issues/144) & [#268](https://github.com/axllent/mailpit/issues/268)) - Option to override the From email address in SMTP relay configuration ([#414](https://github.com/axllent/mailpit/issues/414)) - SMTP auto-forwarding option ([#414](https://github.com/axllent/mailpit/issues/414)) ### Chore - Update Go dependencies - Update node dependencies ### Fix - Correct date formatting in TestMakeHeaders - Update command `npm run update-caniemail` save path ([#422](https://github.com/axllent/mailpit/issues/422)) ## [v1.21.8] ### Chore - Update Go dependencies - Update node dependencies ### Fix - Remove unused FOREIGN KEY REFERENCES in message_tags table ([#374](https://github.com/axllent/mailpit/issues/374)) ## [v1.21.7] ### Chore - Display "From" details in message sidebar (desktop) ([#403](https://github.com/axllent/mailpit/issues/403)) - Display "To" details in mobile messages list - Stricter SMTP 'MAIL FROM' & 'RCPT TO' handling ([#409](https://github.com/axllent/mailpit/issues/409)) - Move smtpd & pop3 modules to internal - Bump Go version for automated testing - Update Go dependencies - Update node dependencies ### Fix - Prevent splitting multi-byte characters in message snippets ([#404](https://github.com/axllent/mailpit/issues/404)) - Ignore unsupported optional SMTP 'MAIL FROM' parameters ([#407](https://github.com/axllent/mailpit/issues/407)) ### Test - Add smtpd tests ## [v1.21.6] ### Feature - Add support for sending inline attachments via HTTP API ([#399](https://github.com/axllent/mailpit/issues/399)) - Include Mailpit label (if set) in webhook HTTP header ([#400](https://github.com/axllent/mailpit/issues/400)) ### Chore - Update Go dependencies - Update node dependencies - Update caniemail database ### Fix - Message view not updating when deleting messages from search ([#395](https://github.com/axllent/mailpit/issues/395)) ## [v1.21.5] ### Chore - Make symlink detection more specific to contain "sendmail" in the name ([#391](https://github.com/axllent/mailpit/issues/391)) - Update Go dependencies - Update node dependencies - Update caniemail database ## [v1.21.4] ### Bugfix - Fix external CSS stylesheet loading in HTML preview ([#388](https://github.com/axllent/mailpit/issues/388)) ## [v1.21.3] ### Chore - Add swagger examples & API code restructure - Upgrade Alpine packages on Docker build - Update node dependencies - Mute Dart Sass deprecation notices - Minor UI tweaks - Update Go dependencies ## [v1.21.2] ### Feature - Add additional ignored flags to sendmail ([#384](https://github.com/axllent/mailpit/issues/384)) ### Chore - Update node dependencies - Update Go dependencies - Remove legacy Tags column from message DB table ### Fix - Fix browser notification request on Edge ([#89](https://github.com/axllent/mailpit/issues/89)) ## [v1.21.1] ### Feature - Add ability to search for messages containing inline images (`has:inline`) - Add ability to search by size smaller or larger than a value (eg: `larger:1M` / `smaller:2.5M`) ### Chore - Separate attachments and inline images in download nav and badges ([#379](https://github.com/axllent/mailpit/issues/379)) - Update Go dependencies ## [v1.21.0] ### Feature - Experimental Unix socket support for HTTPD & SMTPD ([#373](https://github.com/axllent/mailpit/issues/373)) ### Fix - Allow multiple item selection on macOS with Cmd-click ([#378](https://github.com/axllent/mailpit/issues/378)) ## [v1.20.7] ### Chore - Update caniemail database ### Fix - SQL error deleting a tag while using tenant-id ([#374](https://github.com/axllent/mailpit/issues/374)) ### Test - Add tenantIDs to tests ## [v1.20.6] ### Chore - Update node dependencies - Update minimum Go version (1.22.0) - Update Go dependencies - Code cleanup - Update swagger file tests - Update node dependencies - Bump Go compile version to 1.23 ## [v1.20.5] ### Chore - Improve link detection in the HTML preview - Improve tag detection in UI - Use consistent margins for Mailpit label if set - Update node dependencies ### Fix - Use correct parameter order in SpamAssassin socket detection ([#364](https://github.com/axllent/mailpit/issues/364)) ## [v1.20.4] ### Chore - Upgrade vue-css-donut-chart & related charts - Update node dependencies - Update Go dependencies ### Fix - Relax URL detection in link check tool ([#357](https://github.com/axllent/mailpit/issues/357)) ## [v1.20.3] ### Chore - Do not recenter selected messages in sidebar on every new message - Update Go dependencies - Update node dependencies - Update caniemail database ### Fix - Disable automatic HTML/Text character detection when charset is provided ([#348](https://github.com/axllent/mailpit/issues/348)) ## [v1.20.2] ### Feature - Web UI notifications of smtpd & POP3 errors ([#347](https://github.com/axllent/mailpit/issues/347)) ### Chore - Add smtpd server logging in the CLI ([#347](https://github.com/axllent/mailpit/issues/347)) - Add debug database storage logging - Update node dependencies - Update Go dependencies ## [v1.20.1] ### Chore - Show icon attachment in new side navigation message listing ([#345](https://github.com/axllent/mailpit/issues/345)) - Live load up to 100 new messages in sidebar ([#336](https://github.com/axllent/mailpit/issues/336)) - Shift inbox pagination to inbox component ### Fix - Correctly decode X-Tags message headers (RFC 2047) ([#344](https://github.com/axllent/mailpit/issues/344)) ## [v1.20.0] ### Feature - List messages in side nav when viewing message for easy navigation ([#336](https://github.com/axllent/mailpit/issues/336)) - Add option to control message retention by age ([#338](https://github.com/axllent/mailpit/issues/338)) ### Chore - Make internal tagging methods private - Update node dependencies - Update Go dependencies - Update caniemail database ### Fix - Prevent Vue race condition to initialize dayjs relativeTime plugin - Return `text/plain` header for message delete request - Better regexp to detect tags in search - Prevent potential JavaScript errors caused by race condition ## [v1.19.3] ### Security - Prevent bypass of Contend Security Policy using stored XSS, and sanitize preview HTML data (DOMPurify) ### Chore - Display nicer noscript message when JavaScript is disabled - Update Go dependencies ## [v1.19.2] ### Chore - Update Go dependencies ### Fix - Update Inbox "Delete All" count when new messages are detected ([#334](https://github.com/axllent/mailpit/issues/334)) ## [v1.19.1] ### Feature - Add optional relay recipient blocklist ([#333](https://github.com/axllent/mailpit/issues/333)) ### Chore - Bump docker/build-push-action from 5 to 6 ([#327](https://github.com/axllent/mailpit/issues/327)) - Bump esbuild from 0.21.5 to 0.22.0 ([#326](https://github.com/axllent/mailpit/issues/326)) - Bump esbuild to version 0.23.0 - Equal column widths in About modal - Update Go dependencies ## [v1.19.0] ### Feature - Add option to disable auto-tagging for plus-addresses & X-Tags ([#323](https://github.com/axllent/mailpit/issues/323)) - Add ability to rename and delete tags globally ### Chore - Update Go dependencies - Update node dependencies ## [v1.18.7] ### Feature - Add optional label to identify Mailpit instance ([#316](https://github.com/axllent/mailpit/issues/316)) ### Chore - Handle websocket errors caused by persistent connection failures ([#319](https://github.com/axllent/mailpit/issues/319)) - Refactor JavaScript, use arrow functions instead of "self" aliasing ### Test - Add POP3 integration tests ## [v1.18.6] ### Chore - Handle POP3 RSET command - Delete multiple POP3 messages in single action - Update Go dependencies - Update node dependencies - Update caniemail database ### Fix - POP3 size output to show compatible sizes ([#312](https://github.com/axllent/mailpit/issues/312)) - POP3 end of file reached error ([#315](https://github.com/axllent/mailpit/issues/315)) ## [v1.18.5] ### Feature - Add pagination & limits to URL parameters ([#303](https://github.com/axllent/mailpit/issues/303)) ### Chore - Update Go dependencies - Update node dependencies ## [v1.18.4] ### Chore - Clone new Docker images to ghcr.io ([#302](https://github.com/axllent/mailpit/issues/302)) - Update Go dependencies - Update node dependencies ## [v1.18.3] ### Feature - ICalendar (ICS) viewer ([#298](https://github.com/axllent/mailpit/issues/298)) ### Chore - Update node dependencies - Update Go dependencies ### Fix - Add dot stuffing for POP3 ([#300](https://github.com/axllent/mailpit/issues/300)) ## [v1.18.2] ### Chore - Update node dependencies ### Fix - Replace invalid Windows username characters in sendmail ([#294](https://github.com/axllent/mailpit/issues/294)) ## [v1.18.1] ### Feature - Return queued Message ID in SMTP response ([#293](https://github.com/axllent/mailpit/issues/293)) ### Chore - Simplify JSON HTTP responses - Update Go dependencies - Update node dependencies ## [v1.18.0] ### Feature - New search filter prefix `addressed:` includes From, To, Cc, Bcc & Reply-To - Search filter support for auto-tagging - Set tagging filters via a config file - API endpoint for sending ([#278](https://github.com/axllent/mailpit/issues/278)) ### Chore - Auto-update relative received message times - Replace moment JS library with dayjs - Improve tag sorting in web UI, ignore casing - Remove function duplication - use common tools.InArray() - JSON key case-consistency for posted API data (backwards-compatible) - Update go-release-action - Update Go dependencies - Update node dependencies ## [v1.17.1] ### Chore - Clearer error messages for read/write permission failures ([#281](https://github.com/axllent/mailpit/issues/281)) - Update Go dependencies - Update node dependencies ### Fix - Prevent error when two identical tags are added at the exact same time ([#283](https://github.com/axllent/mailpit/issues/283)) ## [v1.17.0] ### Feature - Add UI settings screen - Option to auto relay for matching recipient expression only ([#274](https://github.com/axllent/mailpit/issues/274)) ### Chore - Remove deprecated --disable-html-check option - Move Link check & HTML check features out of beta - Update API documentation regarding date/time searches & timezones - Replace disintegration/imaging with kovidgoyal/imaging to fix CVE-2023-36308 - Auto-rotate thumbnail images based on exif data - Update Go dependencies - Update node dependencies - Update caniemail database ### Fix - Add delay to close database on fatal exit ([#280](https://github.com/axllent/mailpit/issues/280)) ## [v1.16.0] ### Feature - Option to use rqlite database storage ([#254](https://github.com/axllent/mailpit/issues/254)) - Add optional tenant ID to isolate data in shared databases ([#254](https://github.com/axllent/mailpit/issues/254)) - Search support for before: and after: dates ([#252](https://github.com/axllent/mailpit/issues/252)) ### Chore - Switch database flag/env to `--database` / `MP_DATABASE` - Update Go dependencies - Update node dependencies - Update caniemail test database ### Fix - Extract plus addresses from email addresses only, not names - Prevent conditional JS error when global mailbox tag list is modified via auto/plus-address tagging while viewing a message - Remove duplicated authentication check ([#276](https://github.com/axllent/mailpit/issues/276)) ## [v1.15.1] ### Feature - Add readyz subcommand for Docker healthcheck ([#270](https://github.com/axllent/mailpit/issues/270)) ### Chore - Add labels to Docker image ([#267](https://github.com/axllent/mailpit/issues/267)) - Code cleanup, remove redundant functionality ## [v1.15.0] ### Feature - Add SMTP TLS option ([#265](https://github.com/axllent/mailpit/issues/265)) ### Chore - Update Go dependencies - Update node dependencies ### Fix - Enforce SMTP STARTTLS by default if authentication is set ## [v1.14.4] ### Feature - Allow setting SMTP relay configuration values via environment variables ([#262](https://github.com/axllent/mailpit/issues/262)) ### Chore - Reorder CLI flags to group by related functionality - Update caniemail test data ## [v1.14.3] ### Chore - Update Go dependencies - Update node dependencies ### Fix - Prevent crash when calculating deleted space percentage (divide by zero) ## [v1.14.2] ### Chore - Allow setting of multiple message tags via plus addresses ([#253](https://github.com/axllent/mailpit/issues/253)) ### Fix - Prevent runtime error when calculating total messages size of empty table ([#263](https://github.com/axllent/mailpit/issues/263)) ## [v1.14.1] ### Feature - Set message tags using plus addressing ([#253](https://github.com/axllent/mailpit/issues/253)) - Option to enforce TitleCasing for all newly created tags ### Chore - Update Go dependencies - Update node dependencies - Tag names now allow `.` and must be a minimum of 1 character ### Fix - Handle null values in Mailpit settings, set DeletedSize=0 if null ## [v1.14.0] ### Feature - Optional POP3 server ([#249](https://github.com/axllent/mailpit/issues/249)) ### Chore - Better handling of automatic database compression (vacuuming) after deleting messages - Switch to short uuid format for database IDs - Security improvements (gosec) - Refactor storage library - Update Go dependencies - Update node dependencies ### Documentation - Add edge Docker images for latest unreleased features ## [v1.13.3] ### Feature - Add reply-to: search filter ([#247](https://github.com/axllent/mailpit/issues/247)) ### Chore - Update "About" modal layout when new version is available - Compress database only when >= 1% of total message size has been deleted - Update Go dependencies - Update node dependencies ### API - Include Reply-To information in message summaries for message list & websocket events ## [v1.13.2] ### Feature - Add option to log output to file ([#246](https://github.com/axllent/mailpit/issues/246)) ### Chore - Update esbuild - Bump actions build requirement versions - Update Go dependencies - Update node dependencies - Update caniemail data ## [v1.13.1] ### Feature - Add TLSRequired option for smtpd ([#241](https://github.com/axllent/mailpit/issues/241)) ### Chore - Only show number of messages ignored statistics if `--ignore-duplicate-ids` is set - Update Go dependencies - Update node dependencies ### Fix - Workaround for specific field searches containing unicode characters ([#239](https://github.com/axllent/mailpit/issues/239)) ## [v1.13.0] ### Feature - Add optional SpamAssassin integration to display scores ([#233](https://github.com/axllent/mailpit/issues/233)) - Display List-Unsubscribe & List-Unsubscribe-Post header info with syntax validation ([#236](https://github.com/axllent/mailpit/issues/236)) - Add option to disable SMTP reverse DNS (rDNS) lookup ([#230](https://github.com/axllent/mailpit/issues/230)) ### Chore - Update node dependencies - Update Go dependencies - Compress compiled assets with `npm run build` ### Fix - Sendmail support for `-f 'Name '` format - Display multiple whitespace characters in message subject & recipient names ([#238](https://github.com/axllent/mailpit/issues/238)) ## [v1.12.1] ### Feature - Add option to only allow SMTP recipients matching a regular expression (disable open-relay behaviour [#219](https://github.com/axllent/mailpit/issues/219)) ### Chore - Standardize error logging & formatting - Update node dependencies - Automatically refresh connected browsers if Mailpit is upgraded (version change) - Significantly increase database performance using WAL (Write-Ahead-Log) ### Fix - Log total deleted messages when deleting all messages from search - Prevent rare error from websocket connection (unexpected non-whitespace character) - Log total deleted messages when auto-pruning messages (--max) ### Test - Run tests on Linux, Windows & Mac ## [v1.12.0] ### Chore - Refresh search results when search resubmitted or active tag filter clicked - Standardize error logging & formatting - Convert to many-to-many message tag relationships - Update Go dependencies - Update node dependencies - Update caniemail test data - Use memory pointer for internal message parsing & storage - Include runtime statistics in API (info) & UI (About) ## [v1.11.1] ### Chore - Allow multiple tags to be searched using Ctrl-click ([#216](https://github.com/axllent/mailpit/issues/216)) - Update Go dependencies - Update node dependencies ### Fix - Fix regression to support for search query params to all `/latest` endpoints ([#206](https://github.com/axllent/mailpit/issues/206)) ### Test - Add new `ingest` subcommand to import an email file or maildir folder over SMTP ## [v1.11.0] ### Feature - Add configuration option to set maximum SMTP recipients ([#205](https://github.com/axllent/mailpit/issues/205)) ### Chore - Update Go dependencies - Update node dependencies ### API - Allow ID "latest" for message summary, headers, raw version & HTML/link checks ## [v1.10.4] ### Fix - Remove JS debug information for favicon ## [v1.10.3] ### Feature - Add @ as valid character for webroot ([#215](https://github.com/axllent/mailpit/issues/215)) ### Chore - Update caniemail library & add `hr` element test - Update Go dependencies - Update node dependencies ### Fix - New favicon notification badge to fix rendering issues ([#210](https://github.com/axllent/mailpit/issues/210)) ## [v1.10.2] ### Feature - Allow port binding using hostname ### Chore - Clearer log messages for bound SMTP & HTTP addresses - Add favicon fallback font (sans-serif) for unread count - Update Go dependencies - Update node dependencies - Enable tag colors by default ## [v1.10.1] ### Chore - Use NextReader() instead of ReadMessage() for websocket reading ([#207](https://github.com/axllent/mailpit/issues/207)) - Update Go dependencies - Update node dependencies ### Fix - Prevent JavaScript error if message is missing `From` header ([#209](https://github.com/axllent/mailpit/issues/209)) ### Documentation - Revert BinaryResponse type to string ## [v1.10.0] ### Feature - Add URL redirect (`/view/latest`) to view latest message in web UI ([#166](https://github.com/axllent/mailpit/issues/166)) - Option to allow untrusted HTTPS certificates for screenshots & link checking ([#204](https://github.com/axllent/mailpit/issues/204)) - Support search query params to /latest endpoints ([#206](https://github.com/axllent/mailpit/issues/206)) ### Chore - Update Go dependencies - Update node dependencies ### Fix - Correctly close websockets on client disconnect ([#207](https://github.com/axllent/mailpit/issues/207)) ## [v1.9.10] ### Chore - Fix column width in search view - Update caniemail test data - Update Go dependencies - Update node dependencies ### Fix - Correctly display "About" modal when update check fails (resolves [#199](https://github.com/axllent/mailpit/issues/199)) ### Documentation - Update documentation links ## [v1.9.9] ### Feature - Reset message date on release ([#194](https://github.com/axllent/mailpit/issues/194)) - Set optional webhook for received messages ([#195](https://github.com/axllent/mailpit/issues/195)) ### Chore - Move html2text module to internal/html2text - Update Go dependencies - Update node dependencies ## [v1.9.8] ### Chore - Replace html2text modules with simplified internal function - Replace satori/go.uuid with github.com/google/uuid ([#190](https://github.com/axllent/mailpit/issues/190)) - Update Go dependencies - Update node dependencies ### Documentation - Update swagger documentation ### Test - Add html2text tests - Add test to validate swagger.json ## [v1.9.7] ### Chore - Update Go dependencies & minimum Go version (1.21) - Downgrade microcosm-cc/bluemonday, revert to Go 1.20 - Update node dependencies ### Fix - Enable delete button when new messages arrive ## [v1.9.6] ### Chore - Display message previews on separate line ([#175](https://github.com/axllent/mailpit/issues/175)) - Update Go dependencies - Update node dependencies ## [v1.9.5] ### Feature - Display email previews ([#175](https://github.com/axllent/mailpit/issues/175)) - Add `reindex` subcommand to reindex all messages ### Fix - Correctly detect tags in search (UI) - HTML message preview background color when switching themes in Chrome ### Test - Add snippet tests - Add message summary tests ## [v1.9.4] ### Feature - Set auth credentials directly from environment variables ### Chore - Add option to delete a message after release - Remove some flags deprecated 08/2022 - Update Go dependencies - Update node dependencies ## [v1.9.3] ### Chore - Only queue broadcast events if clients are connected - Move utils/* packages to internal/* - Update internal import paths - Move storage package to internal/storage - Update internal/storage import paths - Display "Loading messages" instead of "No results" while loading results - Do not show excluded search tags as "current" in nav ### Test - Add tests for ArgsParser & CleanTag - Add more API tests - Add endpoints for integration tests ## [v1.9.2] ### Chore - Reset pagination when returning to inbox from search - Update node dependencies ### Fix - Delete all messages matching search when more than 1000 results ### Test - Add search delete tests - Add message tag tests ## [v1.9.1] ### Chore - Better support for mobile screen sizes - Link email addresses in message summary to search - Update Go dependencies - Update caniemail data - Set 404 page when loading a non-existent message ## [v1.9.0] ### Feature - New search filter `[!]is:tagged` - Improved search parser ### Chore - Update node dependencies - Rewrite web UI, add URL routing and components - Update Go dependencies - Update minimum Go version to 1.20 ### API - Add endpoint to return all tags in use - Delete by search filter - Remove redundant `Read` status from message (always true) ### Fix - Correctly escape certain characters in search (eg: `'`) ### Test - Bump Go version to 1.21 ## [v1.8.4] ### Fix - Correctly decode proxy links containing HTML entities (screenshots) ## [v1.8.3] ### Feature - HTML screenshots ### Chore - Group message tabs on mobile - Update node dependencies ## [v1.8.2] ### Feature - Workaround for non-RFC-compliant message headers containing - Link check to test message links ### Chore - Set hostname in page meta title to identify Mailpit instance - Update Go libs ### Build - Update wangyoucao577/go-release-action@v1.39 ## [v1.8.1] ### Chore - Update Go dependencies - Update node dependencies ### Fix - Exclude