mirror of
https://github.com/axllent/mailpit.git
synced 2026-03-02 22:47:01 +00:00
49 KiB
49 KiB
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)
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)
[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)
- Add support for webhook delay (#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)
- Update Go dependencies
- Update node dependencies
Fix
- Ensure SMTP HELO/EHLO command is issued before MAIL FROM as per RFC 5321 (#621)
- Prevent nested MAIL command during an active SMTP transaction (#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)
- Prevent Server-Side Request Forgery (SSRF) via HTML Check API (GHSA-6jxm-fv7w-rw5j)
Chore
- Fix formatting and update reporting instructions in SECURITY.md (#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)
- Correctly detect macOS group in install.sh (#619)
- Auto-tagging using SMTP username using plain auth (#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
Feature
- Allow default mail addresses to be set when releasing message (#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
Chore
- Bump actions/checkout from 5 to 6 (#610)
- Bump actions/cache from 4 to 5 (#607)
- Bump actions/stale from 10.0.0 to 10.1.1 (#604)
- Bump actions/setup-node from 5 to 6 (#598)
- Bump esbuild from 0.25.12 to 0.27.2 (#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)
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)
- 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)
[v1.27.6]
Feature
- Add optional --no-release-check to version subcommand (#557)
Chore
- Set HELO/EHLO hostname when connecting to external SMTP server (#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)
[v1.27.4]
Feature
- Allow rejected SMTP recipients to be silently dropped (#549)
Chore
- Update Go dependencies
- Update node dependencies
- Update caniemail test database
[v1.27.3]
Fix
- Fix sendmail when using an
--smtp-addr <ip>:<port>(#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)
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)
- Support angle brackets for text/plain URLs with spaces (#535)
- Do not check latest release for Prometheus statistics (#522)
[v1.27.1]
Chore
- Allow unknown href link protocols in HTML view such as myapp:// (#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)
[v1.26.2]
Feature
- Store username with messages, auto-tag, and UI display (#521)
- Allow version checking to be disabled (#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)
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)
Chore
- Update Go dependencies
- Update node dependencies
- Update caniemail testing database
Fix
- Add optional message_num argument in POP3 LIST command (#518)
- Use float64 for returned SQL value types for rqlite compatibility (#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
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)
[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)
[v1.25.0]
Feature
- Add option to hide the "Delete all" button in web UI (#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)
Documentation
- Switch to git-cliff for changelog generation
- Add Message ListUnsubscribe to swagger / API documentation (#494)
[v1.24.2]
Feature
- Display unread count in app badge (#485)
Chore
- Install script improvements & better error handling (#482)
- Update Go dependencies
- Update node dependencies
- Update caniemail database
[v1.24.1]
Feature
- Add ability to mark all search results as read (#476)
Chore
- Bump node version to 22 for binary releases
- Improve error message for From header parsing failure (#477)
- Update Go dependencies
- Update node dependencies
[v1.24.0]
Feature
- Add TLS relay support and refactor relay function (#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-IDheader instead ofMessage-Idwhen generating new IDs (RFC 5322) - Improve inline HTML Check style detection (#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)
- Prevent cropping bottom of label characters in web UI (#457)
[v1.23.0]
Feature
- Add configuration to set message compression level in db (0-3) (#447 & #448)
- Add configuration to explicitly disable HTTP compression in web UI/API (#448)
- Add configuration to disable SQLite WAL mode for NFS compatibility
Chore
- Avoid shell in Docker health check (#444)
- Handle BLOB storage for default database differently to rqlite to reduce memory overhead (#447)
- Optimize ZSTD encoder for fastest compression of messages (#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)
Test
- Add tests for message compression levels
[v1.22.3]
Feature
- Add dump feature to export all raw messages to a local directory (#443)
Chore
- Specify Docker health check start period and interval (#439)
- Update Go dependencies
- Update node dependencies
Fix
- Replace TrimLeft with TrimPrefix for webroot path handling (#441)
- Include font/woff content type to embedded controller
- Update Swagger JSON to prevent overflow (#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)
- Add missing "latest" route to message attachment API endpoint (#437)
[v1.22.1]
Feature
- Add optional UI setting to skip "Delete all" & "Mark all read" confirmation dialogs(#428)
- Add optional query parameter for HTML message iframe embedding (#434)
Chore
- Bump actions/stale from 9.0.0 to 9.1.0 (#432)
- Add API CORS policy to HTML preview routes (#434)
- Update Go dependencies
- Update node dependencies
[v1.22.0]
Feature
- Add Chaos functionality to test integration handling of SMTP error responses (#402, #110, #144 & #268)
- Option to override the From email address in SMTP relay configuration (#414)
- SMTP auto-forwarding option (#414)
Chore
- Update Go dependencies
- Update node dependencies
Fix
- Correct date formatting in TestMakeHeaders
- Update command
npm run update-caniemailsave path (#422)
[v1.21.8]
Chore
- Update Go dependencies
- Update node dependencies
Fix
- Remove unused FOREIGN KEY REFERENCES in message_tags table (#374)
[v1.21.7]
Chore
- Display "From" details in message sidebar (desktop) (#403)
- Display "To" details in mobile messages list
- Stricter SMTP 'MAIL FROM' & 'RCPT TO' handling (#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)
- Ignore unsupported optional SMTP 'MAIL FROM' parameters (#407)
Test
- Add smtpd tests
[v1.21.6]
Feature
- Add support for sending inline attachments via HTTP API (#399)
- Include Mailpit label (if set) in webhook HTTP header (#400)
Chore
- Update Go dependencies
- Update node dependencies
- Update caniemail database
Fix
- Message view not updating when deleting messages from search (#395)
[v1.21.5]
Chore
- Make symlink detection more specific to contain "sendmail" in the name (#391)
- Update Go dependencies
- Update node dependencies
- Update caniemail database
[v1.21.4]
Bugfix
- Fix external CSS stylesheet loading in HTML preview (#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)
Chore
- Update node dependencies
- Update Go dependencies
- Remove legacy Tags column from message DB table
Fix
- Fix browser notification request on Edge (#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)
- Update Go dependencies
[v1.21.0]
Feature
- Experimental Unix socket support for HTTPD & SMTPD (#373)
Fix
- Allow multiple item selection on macOS with Cmd-click (#378)
[v1.20.7]
Chore
- Update caniemail database
Fix
- SQL error deleting a tag while using tenant-id (#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)
[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)
[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)
[v1.20.2]
Feature
- Web UI notifications of smtpd & POP3 errors (#347)
Chore
- Add smtpd server logging in the CLI (#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)
- Live load up to 100 new messages in sidebar (#336)
- Shift inbox pagination to inbox component
Fix
- Correctly decode X-Tags message headers (RFC 2047) (#344)
[v1.20.0]
Feature
- List messages in side nav when viewing message for easy navigation (#336)
- Add option to control message retention by age (#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/plainheader 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)
[v1.19.1]
Feature
- Add optional relay recipient blocklist (#333)
Chore
- Bump docker/build-push-action from 5 to 6 (#327)
- Bump esbuild from 0.21.5 to 0.22.0 (#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)
- 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)
Chore
- Handle websocket errors caused by persistent connection failures (#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
[v1.18.5]
Feature
- Add pagination & limits to URL parameters (#303)
Chore
- Update Go dependencies
- Update node dependencies
[v1.18.4]
Chore
- Clone new Docker images to ghcr.io (#302)
- Update Go dependencies
- Update node dependencies
[v1.18.3]
Feature
- ICalendar (ICS) viewer (#298)
Chore
- Update node dependencies
- Update Go dependencies
Fix
- Add dot stuffing for POP3 (#300)
[v1.18.2]
Chore
- Update node dependencies
Fix
- Replace invalid Windows username characters in sendmail (#294)
[v1.18.1]
Feature
- Return queued Message ID in SMTP response (#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)
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)
- Update Go dependencies
- Update node dependencies
Fix
- Prevent error when two identical tags are added at the exact same time (#283)
[v1.17.0]
Feature
- Add UI settings screen
- Option to auto relay for matching recipient expression only (#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)
[v1.16.0]
Feature
- Option to use rqlite database storage (#254)
- Add optional tenant ID to isolate data in shared databases (#254)
- Search support for before: and after: dates (#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)
[v1.15.1]
Feature
- Add readyz subcommand for Docker healthcheck (#270)
Chore
- Add labels to Docker image (#267)
- Code cleanup, remove redundant functionality
[v1.15.0]
Feature
- Add SMTP TLS option (#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)
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)
Fix
- Prevent runtime error when calculating total messages size of empty table (#263)
[v1.14.1]
Feature
- Set message tags using plus addressing (#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)
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)
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)
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)
Chore
- Only show number of messages ignored statistics if
--ignore-duplicate-idsis set - Update Go dependencies
- Update node dependencies
Fix
- Workaround for specific field searches containing unicode characters (#239)
[v1.13.0]
Feature
- Add optional SpamAssassin integration to display scores (#233)
- Display List-Unsubscribe & List-Unsubscribe-Post header info with syntax validation (#236)
- Add option to disable SMTP reverse DNS (rDNS) lookup (#230)
Chore
- Update node dependencies
- Update Go dependencies
- Compress compiled assets with
npm run build
Fix
- Sendmail support for
-f 'Name <email@example.com>'format - Display multiple whitespace characters in message subject & recipient names (#238)
[v1.12.1]
Feature
- Add option to only allow SMTP recipients matching a regular expression (disable open-relay behaviour #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)
- Update Go dependencies
- Update node dependencies
Fix
- Fix regression to support for search query params to all
/latestendpoints (#206)
Test
- Add new
ingestsubcommand to import an email file or maildir folder over SMTP
[v1.11.0]
Feature
- Add configuration option to set maximum SMTP recipients (#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)
Chore
- Update caniemail library & add
hrelement test - Update Go dependencies
- Update node dependencies
Fix
- New favicon notification badge to fix rendering 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)
- Update Go dependencies
- Update node dependencies
Fix
- Prevent JavaScript error if message is missing
Fromheader (#209)
Documentation
- Revert BinaryResponse type to string
[v1.10.0]
Feature
- Add URL redirect (
/view/latest) to view latest message in web UI (#166) - Option to allow untrusted HTTPS certificates for screenshots & link checking (#204)
- Support search query params to /latest endpoints (#206)
Chore
- Update Go dependencies
- Update node dependencies
Fix
- Correctly close websockets on client disconnect (#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)
Documentation
- Update documentation links
[v1.9.9]
Feature
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)
- 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)
- Update Go dependencies
- Update node dependencies
[v1.9.5]
Feature
- Display email previews (#175)
- Add
reindexsubcommand 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
Readstatus 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
[v1.8.1]
Chore
- Update Go dependencies
- Update node dependencies
Fix
- Exclude <script type="application/json"> from HTML check tests
- Exclude "sendmail" from recipients list when using
mailpit sendmail <options> - Check/set message Reply-To using SMTP FROM
Documentation
- Add pagination to swagger search documentation
[v1.8.0]
Feature
- HTML check to test & score mail client compatibility with HTML emails
Chore
- Pagination support for search, all results
- Remove
<base />tag if set in HTML preview - Add flag to block all access to remote CSS and fonts (CSP)
- Update Go dependencies
- Update node dependencies
Fix
- Add basePath to swagger.json if webroot is specified
Documentation
- Update swagger docs
- Update brew installation instructions
[v1.7.1]
Chore
- Update node dependencies
- Update dark mode loading background color
- Dark mode color adjustments
- Wrap HTML source lines
- Update Go dependencies
[v1.7.0]
Chore
- Theme toggler - auto, light and dark themes
- Update Go dependencies
- Update node dependencies
API
- Set raw message Content-Type to UTF-8
- Ignore SMTP relay error when one of multiple recipients doesn't exist
Build
- Define Vue build options in esbuild
[v1.6.22]
Feature
- Clearer SMTP error messages
Chore
- Upgrade node dependencies
- Update Go dependencies
[v1.6.21]
Chore
- More accurate clickable hyperlink logic in plain text messages
[v1.6.20]
Feature
- Convert links into clickable hyperlinks in plain text message content
Chore
- Update node dependencies
[v1.6.19]
Fix
- Only display sendmail help when sendmail subcommand is invoked
[v1.6.18]
Chore
- Display message tags below subject in message overview
- Add option to enable tag colors based on tag name hash
API
- Sort tags before saving
[v1.6.17]
Fix
- Add single dash arguments support to sendmail command (#123)
[v1.6.16]
Bugfix
- Fix sendmail/startup panic
[v1.6.15]
Feature
- Add
sendmail -bsfunctionality
[v1.6.14]
Feature
- Set tags via X-Tags message header
- Add ability to delete or mark search results read
Chore
- Update node dependencies
[v1.6.13]
Feature
- Add SMTP LOGIN authentication method for message relay
[v1.6.12]
Feature
- Add Message-Id to MessageSummary (#116)
Documentation
- Update swagger field descriptions, add MessageID
[v1.6.11]
Chore
- Check for secure context instead of HTTPS (#114)
- Update Go dependencies
- Update node dependencies
[v1.6.10]
Chore
- Remove "Noto Color Emoji" from default bootstrap font list
- Update Go dependencies
- Update node dependencies
[v1.6.9]
Chore
- Update Go dependencies
- Update node dependencies
API
- Return blank 200 response for OPTIONS requests (CORS)
Bugfix
- Correctly escape JS cid regex
[v1.6.8]
Feature
- Add
-Sshort flag for sendmail--smtp-addr - Add allowlist to filter recipients before relaying messages (#109)
Bugfix
- Fix Date display when message doesn't contain a Date header
[v1.6.7]
Bugfix
- Fix auto-deletion cron
[v1.6.6]
Feature
- Option to ignore duplicate Message-IDs
Chore
- Style Undisclosed recipients in message view
- Update Go dependencies
- Update node dependencies
API
- Include correct start value in search response
- Set Access-Control-Allow-Headers when --api-cors is set
Documentation
- Update swagger field descriptions
[v1.6.5]
Feature
- Add Access-Control-Allow-Methods methods when CORS origin is set
[v1.6.4]
Bugfix
- Fix UI images not displaying when multiple cid names overlap
[v1.6.3]
Feature
- Display clickable toast notifications for new messages
[v1.6.2]
Bugfix
- If set use return-path address as SMTP from address
[v1.6.1]
Bugfix
- Add API release route again (bad merge)
[v1.6.0]
Feature
- Inject/update Bcc header for missing addresses when SMTP recipients do not match message headers
Chore
- Update node dependencies
- Update Go dependencies
- Message release functionality
- Display Return-Path if different to the From address
API
- Include Return-Path in message summary data
- Message relay / release
- Enable cross-origin resource sharing (CORS) configuration
[v1.5.5]
Feature
- Update listen regex to allow IPv6 addresses (#85)
Documentation
- Add Docker image tag for major/minor version
[v1.5.4]
Feature
- Mobile and tablet HTML preview toggle in desktop mode
[v1.5.3]
Bugfix
- Enable SMTP auth flags to be set via env
[v1.5.2]
Chore
- Tab to view formatted message headers
API
- Include Reply-To in message summary (including Web UI)
[v1.5.1]
Feature
- Add 'o', 'b' & 's' ignored flags for sendmail
Chore
- Update node dependencies
- Update Go dependencies
[v1.5.0]
Feature
- Option to use message dates as received dates (new messages only)
- Options to support auth without STARTTLS, and accept any login
- Rename SSL to TLS, add deprecation warnings to flags & ENV variables referring to SSL
- Download raw message, HTML/text body parts or attachments via single button
- OpenAPI / Swagger schema
API
- Return received datetime when message does not contain a date header
Bugfix
- Fix JavaScript error when adding the first tag manually
[v1.4.0]
Feature
- Option to use message dates as received dates (new messages only)
- Options to support auth without STARTTLS, and accept any login
- Rename SSL to TLS, add deprecation warnings to flags & ENV variables referring to SSL
API
- Return received datetime when message does not contain a date header
[v1.3.11]
Feature
- Expand custom webroot path to include a-z A-Z 0-9 _ . - and /
Documentation
- Expose default ports (1025/tcp 8025/tcp)
[v1.3.10]
Chore
- Update node dependencies
Bugfix
- Fix search with existing emails
[v1.3.9]
Feature
- Add Cc and Bcc search filters
Chore
- Update Go dependencies
- Update node dependencies
[v1.3.8]
Chore
- Compress SVG icons
Bugfix
- Restore notification icon
[v1.3.7]
Feature
- Add Kubernetes API health (livez/readyz) endpoints
Chore
- Upgrade to esbuild 0.17.5
[v1.3.6]
Chore
- Update Go dependencies
- Update node dependencies
Bugfix
- Correctly index missing 'From' header in database
[v1.3.5]
Bugfix
- Include HTML link text in search data
[v1.3.4]
Bugfix
- Allow tags to be set from MP_TAG environment
[v1.3.3]
Bugfix
- Allow tags to be set from MP_TAG environment
[v1.3.2]
Build
- Temporarily disable arm (32) Docker build
[v1.3.1]
Chore
- Rename "results" to "result" when singular message returned
- Upgrade esbuild & axios
Bugfix
- Append trailing slash to custom webroot for UI & API
[v1.3.0]
Chore
- Update node dependencies
- Update Go dependencies
Build
- Remove duplicate bootstrap CSS
[v1.2.9]
Bugfix
- Delay 200ms to set
target="_blank"for all rendered email links
[v1.2.8]
Feature
- Message tags and auto-tagging
Bugfix
- Return empty arrays rather than null for message To, CC, BCC, Inlines & Attachments
[v1.2.7]
Feature
- Allow custom webroot
[v1.2.6]
Chore
- Update node dependencies
- Update Go dependencies
API
- Provide structs of API v1 responses for use in client code
[1.2.5]
Chore
- Bump build action to use node 18
- Theme changes
- Load first page if paginated list returns 0 results
- Broadcast "delete all" action to reload all connected clients
[1.2.4]
Bugfix
- Fix mail download link
[1.2.3]
Chore
- Prevent double message index request on websocket connect
API
- Add limit and start parameters to search
[1.2.2]
Chore
- Update Go dependencies
API
- Add API endpoint to return message headers
Test
- Add API test for raw & message headers
[1.2.1]
Chore
- Add about app modal with version update notification
- Update frontend modules
[1.2.0]
Feature
- Add REST API
Chore
- Hide delete all / mark all read in message view
- Changes to use new data API
Test
- Add API tests
[1.1.7]
Chore
- Add documentation link (wiki)
Fix
- Workaround for Safari source matching bug blocking event listener
- Normalize running binary name detection (Windows)
[1.1.5]
Chore
- Support for inline images using filenames instead of cid
Build
- Switch to esbuild-sass-plugin
[1.1.4]
Security
- Add restrictive HTTP Content-Security-Policy
Feature
- Add --quiet flag to display only errors
Chore
- Remove left & right borders (message list)
- Add favicon unread message counter
- Minor UI color change & unread count position adjustment
[1.1.3]
Fix
- Update message download link
[1.1.2]
Chore
- Allow reverse proxy subdirectories
[1.1.1]
Chore
- Attachment icons and image thumbnails
[1.1.0]
Chore
- Add previous/next message links
- HTML source & highlighting
[1.0.0]
Feature
- Search parser improvements
- Search parser improvements
- Multiple message selection for group actions using shift/ctrl click
Chore
- Update frontend modules & esbuild
- Update frontend modules & esbuild
- Display unknown recipients as as
Undisclosed recipients - Post data using 'application/json'
[1.0.0-beta1]
Feature
- Switch backend storage to use SQLite
Chore
- Resize preview iframe on load
[0.1.5]
Feature
- Improved message search - any order & phrase quoting
Chore
- Resize iframes with viewport resize
- Change breakpoints for mobile view of messages
[0.1.4]
Feature
- Email compression in storage
Chore
- Mobile compatibility improvements & functionality
Test
- Database total/unread statistics tests
- Enable testing on feature branches
[0.1.3]
Feature
- Mark all messages as read
Chore
- Update pagination values when new mail arrives when not on first page
- Minor UI tweaks
- Add reset search button
- Better error handling when connection to server is broken
[0.1.2]
Security
- Use strconv.Atoi() for safe string to int conversions
- Sanitize mailbox names
- Don't allow tar files containing a ".."
Feature
- Optional browser notifications (HTTPS only)
[0.1.1]
Bugfix
- Fix env variable for MP_UI_SSL_KEY
[0.1.0]
Feature
- SMTP STARTTLS & SMTP authentication support
[0.0.9]
Feature
- HTTPS option for web UI
Test
- Memory & physical database tests
Bugfix
- Include read status in search results
[0.0.8]
Chore
- Add project links to help in CLI
Bugfix
- Fix total/unread count after failed message inserts
[0.0.7]
Feature
- : Add multi-arch docker image
Bugfix
- Command flag should be
--auth-file
[0.0.6]
Bugfix
- Disable CGO when building multi-arch binaries
[0.0.5]
Feature
- Basic authentication support
[0.0.4]
Chore
- Cater for messages without From email address
- Add space in To fields
- Minor UI & logging changes
- Cater for messages without From email address
- Add space in To fields
- Add date to console log
Test
- Add search tests
Bugfix
- Update to clover-v2.0.0-alpha.2 to fix sorting
[0.0.3]
Bugfix
- Update to clover-v2.0.0-alpha.2 to fix sorting
[0.0.2]
Feature
- Unread statistics