# Changelog Notable changes to Mailpit will be documented in this file. ## [v1.19.0] ### Feature - Add ability to rename and delete tags globally - Add option to disable auto-tagging for plus-addresses & X-Tags ([#323](https://github.com/axllent/mailpit/issues/323)) ### Chore - Update node dependencies - Update Go dependencies ## [v1.18.7] ### Feature - Add optional label to identify Mailpit instance ([#316](https://github.com/axllent/mailpit/issues/316)) ### Chore - Refactor JavaScript, use arrow functions instead of "self" aliasing - Handle websocket errors caused by persistent connection failures ([#319](https://github.com/axllent/mailpit/issues/319)) ### Testing - Add POP3 integration tests ## [v1.18.6] ### Chore - Update caniemail database - Update node dependencies - Update Go dependencies - Delete multiple POP3 messages in single action - Handle POP3 RSET command ### Fix - POP3 end of file reached error ([#315](https://github.com/axllent/mailpit/issues/315)) - POP3 size output to show compatible sizes ([#312](https://github.com/axllent/mailpit/issues/312)) ## [v1.18.5] ### Feature - Add pagination & limits to URL parameters ([#303](https://github.com/axllent/mailpit/issues/303)) ### Chore - Update node dependencies - Update Go dependencies ## [v1.18.4] ### Chore - Update node dependencies - Update Go dependencies - Clone new Docker images to ghcr.io ([#302](https://github.com/axllent/mailpit/issues/302)) ## [v1.18.3] ### Feature - iCalendar (ICS) viewer ([#298](https://github.com/axllent/mailpit/issues/298)) ### Chore - Update Go dependencies - Update node 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 - Update node dependencies - Update Go dependencies - Simplify JSON HTTP responses ## [v1.18.0] ### Feature - API endpoint for sending ([#278](https://github.com/axllent/mailpit/issues/278)) - Set tagging filters via a config file - Search filter support for auto-tagging - New search filter prefix `addressed:` includes From, To, Cc, Bcc & Reply-To ### Chore - Update node dependencies - Update Go dependencies - Update go-release-action - JSON key case-consistency for posted API data (backwards-compatible) - Remove function duplication - use common tools.InArray() - Improve tag sorting in web UI, ignore casing - Replace moment JS library with dayjs - Auto-update relative received message times ## [v1.17.1] ### Chore - Update node dependencies - Update Go dependencies - Clearer error messages for read/write permission failures ([#281](https://github.com/axllent/mailpit/issues/281)) ### 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 - Option to auto relay for matching recipient expression only ([#274](https://github.com/axllent/mailpit/issues/274)) - Add UI settings screen ### Chore - Update caniemail database - Update node dependencies - Update Go dependencies - Auto-rotate thumbnail images based on exif data - Replace disintegration/imaging with kovidgoyal/imaging to fix CVE-2023-36308 - Update API documentation regarding date/time searches & timezones - Move Link check & HTML check features out of beta - Remove deprecated --disable-html-check option ### Fix - Add delay to close database on fatal exit ([#280](https://github.com/axllent/mailpit/issues/280)) ## [v1.16.0] ### Feature - Search support for before: and after: dates ([#252](https://github.com/axllent/mailpit/issues/252)) - Add optional tenant ID to isolate data in shared databases ([#254](https://github.com/axllent/mailpit/issues/254)) - Option to use rqlite database storage ([#254](https://github.com/axllent/mailpit/issues/254)) ### Chore - Update caniemail test database - Update node dependencies - Update Go dependencies - Switch database flag/env to `--database` / `MP_DATABASE` ### Fix - Remove duplicated authentication check ([#276](https://github.com/axllent/mailpit/issues/276)) - Prevent conditional JS error when global mailbox tag list is modified via auto/plus-address tagging while viewing a message - Extract plus addresses from email addresses only, not names ## [v1.15.1] ### Feature - Add readyz subcommand for Docker healthcheck ([#270](https://github.com/axllent/mailpit/issues/270)) ### Chore - Code cleanup, remove redundant functionality - Add labels to Docker image ([#267](https://github.com/axllent/mailpit/issues/267)) ## [v1.15.0] ### Feature - Add SMTP TLS option ([#265](https://github.com/axllent/mailpit/issues/265)) ### Chore - Update node dependencies - Update Go 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 - Update caniemail test data - Reorder CLI flags to group by related functionality ## [v1.14.3] ### Chore - Update node dependencies - Update Go 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 - Option to enforce TitleCasing for all newly created tags - Set message tags using plus addressing ([#253](https://github.com/axllent/mailpit/issues/253)) ### Chore - Tag names now allow `.` and must be a minimum of 1 character - Update node dependencies - Update Go dependencies ### 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 - Update node dependencies - Update Go dependencies - Refactor storage library - Security improvements (gosec) - Switch to short uuid format for database IDs - Better handling of automatic database compression (vacuuming) after deleting messages ### Docker - 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 node dependencies - Update Go dependencies - Compress database only when >= 1% of total message size has been deleted - Update "About" modal layout when new version is available ### 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 caniemail data - Update node modules - Update Go modules - Bump actions build requirement versions - Update esbuild ## [v1.13.1] ### Feature - Add TLSRequired option for smtpd ([#241](https://github.com/axllent/mailpit/issues/241)) ### Chore - Update node dependencies - Update Go dependencies ### UI - Only show number of messages ignored statistics if `--ignore-duplicate-ids` is set ### Fix - Workaround for specific field searches containing unicode characters ([#239](https://github.com/axllent/mailpit/issues/239)) ## [v1.13.0] ### Feature - Add option to disable SMTP reverse DNS (rDNS) lookup ([#230](https://github.com/axllent/mailpit/issues/230)) - Display List-Unsubscribe & List-Unsubscribe-Post header info with syntax validation ([#236](https://github.com/axllent/mailpit/issues/236)) - Add optional SpamAssassin integration to display scores ([#233](https://github.com/axllent/mailpit/issues/233)) ### Chore - Compress compiled assets with `npm run build` - Update Go modules - Update node modules ### Fix - Display multiple whitespace characters in message subject & recipient names ([#238](https://github.com/axllent/mailpit/issues/238)) - Sendmail support for `-f 'Name '` format ## [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 - Significantly increase database performance using WAL (Write-Ahead-Log) - Standardize error logging & formatting ### UI - Automatically refresh connected browsers if Mailpit is upgraded (version change) ### Libs - Update node modules ### Fix - Log total deleted messages when auto-pruning messages (--max) - Prevent rare error from websocket connection (unexpected non-whitespace character) - Log total deleted messages when deleting all messages from search ### Tests - Run tests on Linux, Windows & Mac ## [v1.12.0] ### Chore - Include runtime statistics in API (info) & UI (About) - Use memory pointer for internal message parsing & storage - Update caniemail test data - Convert to many-to-many message tag relationships - Standardize error logging & formatting ### UI - Refresh search results when search resubmitted or active tag filter clicked ### Libs - Update node modules - Update Go modules ## [v1.11.1] ### UI - Allow multiple tags to be searched using Ctrl-click ([#216](https://github.com/axllent/mailpit/issues/216)) ### Libs - Update node modules - Update Go modules ### Fix - Fix regression to support for search query params to all `/latest` endpoints ([#206](https://github.com/axllent/mailpit/issues/206)) ### Testing - 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)) ### API - Allow ID "latest" for message summary, headers, raw version & HTML/link checks ### Libs - Update node modules - Update Go modules ## [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 ### Libs - Update node modules - Update Go modules ### 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 - Add favicon fallback font (sans-serif) for unread count - Clearer log messages for bound SMTP & HTTP addresses ### UI - Enable tag colors by default ### Libs - Update node modules - Update Go modules ## [v1.10.1] ### Chore - Use NextReader() instead of ReadMessage() for websocket reading ([#207](https://github.com/axllent/mailpit/issues/207)) ### Libs - Update node modules - Update Go modules ### Fix - Prevent JavaScript error if message is missing `From` header ([#209](https://github.com/axllent/mailpit/issues/209)) ### Swagger - Revert BinaryResponse type to string ## [v1.10.0] ### Feature - Support search query params to /latest endpoints ([#206](https://github.com/axllent/mailpit/issues/206)) - Option to allow untrusted HTTPS certificates for screenshots & link checking ([#204](https://github.com/axllent/mailpit/issues/204)) - Add URL redirect (`/view/latest`) to view latest message in web UI ([#166](https://github.com/axllent/mailpit/issues/166)) ### Libs - Update node modules - Update Go modules ### Fix - Correctly close websockets on client disconnect ([#207](https://github.com/axllent/mailpit/issues/207)) ## [v1.9.10] ### UI - Fix column width in search view ### Libs - Update node modules - Update Go modules - Update caniemail test data ### Fix - Correctly display "About" modal when update check fails (resolves [#199](https://github.com/axllent/mailpit/issues/199)) ### Docs - Update documentation links ## [v1.9.9] ### Feature - Set optional webhook for received messages ([#195](https://github.com/axllent/mailpit/issues/195)) - Reset message date on release ([#194](https://github.com/axllent/mailpit/issues/194)) ### Chore - Move html2text module to internal/html2text ### Libs - update node modules - Update Go modules ## [v1.9.8] ### Chore - Replace satori/go.uuid with github.com/google/uuid ([#190](https://github.com/axllent/mailpit/issues/190)) - Replace html2text modules with simplified internal function ### Libs - Update node modules - Update Go modules ### Swagger - Update swagger documentation ### Tests - Add test to validate swagger.json - Add html2text tests ## [v1.9.7] ### Libs - Update node modules - Downgrade microcosm-cc/bluemonday, revert to Go 1.20 - Update Go modules & minimum Go version (1.21) ### Fix - Enable delete button when new messages arrive ## [v1.9.6] ### UI - Display message previews on separate line ([#175](https://github.com/axllent/mailpit/issues/175)) ### Libs - Update node modules - Update Go modules ## [v1.9.5] ### Feature - Add `reindex` subcommand to reindex all messages - Display email previews ([#175](https://github.com/axllent/mailpit/issues/175)) ### Fix - HTML message preview background color when switching themes in Chrome - Correctly detect tags in search (UI) ### Tests - Add message summary tests - Add snippet tests ## [v1.9.4] ### Feature - Set auth credentials directly from environment variables ### Chore - Remove some flags deprecated 08/2022 ### UI - Add option to delete a message after release ### Libs - Update node modules - Update Go modules ## [v1.9.3] ### Chore - Update internal/storage import paths - Move storage package to internal/storage - Update internal import paths - Move utils/* packages to internal/* ### UI - Do not show excluded search tags as "current" in nav - Display "Loading messages" instead of "No results" while loading results - Only queue broadcast events if clients are connected ### Testing - Add endpoints for integration tests ### Tests - Add more API tests - Add tests for ArgsParser & CleanTag ## [v1.9.2] ### UI - Reset pagination when returning to inbox from search ### Libs - Update node modules ### Fix - Delete all messages matching search when more than 1000 results ### Tests - Add message tag tests - Add search delete tests ## [v1.9.1] ### Chore - Update caniemail data ### UI - Set 404 page when loading a non-existent message - Link email addresses in message summary to search - Better support for mobile screen sizes ### Libs - Update Go modules ## [v1.9.0] ### Feature - Improved search parser - New search filter `[!]is:tagged` ### UI - Rewrite web UI, add URL routing and components ### API - Remove redundant `Read` status from message (always true) - Delete by search filter - Add endpoint to return all tags in use ### Libs - Update minimum Go version to 1.20 - Update Go modules - Update node modules ### Fix - Correctly escape certain characters in search (eg: `'`) ### Tests - Bump Go version to 1.21 ## [v1.8.4] ### Fix - Correctly decode proxy links containing HTML entities (screenshots) ## [v1.8.3] ### Feature - HTML screenshots ### UI - Group message tabs on mobile ### Libs - Update node modules ## [v1.8.2] ### Feature - Link check to test message links - Workaround for non-RFC-compliant message headers containing ### UI - Set hostname in page meta title to identify Mailpit instance ### Libs - Update Go libs ### Build - Update wangyoucao577/go-release-action[@v1](https://github.com/v1).39 ## [v1.8.1] ### Libs - Update node modules - Update Go modules ### Fix - Check/set message Reply-To using SMTP FROM - Exclude "sendmail" from recipients list when using `mailpit sendmail ` - Exclude