* Add header-based email unsubscribe support (RFC 2369/8058)
Implement support for List-Unsubscribe and List-Unsubscribe-Post headers
to enable one-click unsubscribe functionality per RFC 8058.
Changes:
- Add listUnsubscribe and listUnsubscribePost attributes to Message model
- Create unsubscribe service with header parsing and action handlers
- Support one-click unsubscribe via HTTPS POST (RFC 8058)
- Support mailto unsubscribe by opening composer for user review
- Fall back to body-parsed links when headers unavailable
- Add loading/success/error states to unsubscribe UI
- Add localization strings and styles for new states
* Fix jsonKey casing to match mailsync output
* Use LRUCache package instead of hand-rolled cache
* Prevent multiple unsubscribe requests on rapid clicks
Add guard in _handleClick to check if operation is already in progress,
preventing duplicate POST requests when users click before loading state renders.
* Delete plans/email-unsubscribe-rfc8058.md
---------
Co-authored-by: Claude <noreply@anthropic.com>
* update zh-CN localization files
* fix: Mail server configuration cannot be performed when the domain name does not have a built-in template.
Create a fallback template. When the built-in template corresponding to the domain name cannot be found, use the fallback template to configure the server.
---------
Co-authored-by: xml <xiamengliang@uniontech.com>
* feats: add script to improve localization
* fix: the script used to generate the translations didn't take certain concatenations into account.
Previously :
Many features are unavailable in plain-text mode. To create a single
Now :
Many features are unavailable in plain-text mode. To create a single plain-text draft, hold Alt or Option while clicking Compose or Reply.
-
Previously :
These features were %@ of the messages you sentin this time period, so these numbers do not reflect all of your activity. To enableread receipts and link tracking on emails you send, click the %@ or link tracking %@ icons in the composer.
Now :
These features were %@ of the messages you sent in this time period, so these numbers do not reflect all of your activity. To enable read receipts and link tracking on emails you send, click the %@ or link tracking %@ icons in the composer.
-
Previously :
To make changes to contacts in this account, you'll need to re-authorize Mailspring to access your data.\n\n
Now :
To make changes to contacts in this account, you'll need to re-authorize Mailspring to access your data.\n\nIn Mailspring's main window, go to Preferences > Accounts, select this account, and click \"Re-authenticate\". You'll be prompted to give Mailspring additional permission to update and delete your contacts.
...
* chore: improving the french and format-localizations.js executed
* feats: add templates to localizations
* fix(localization): define default template to english
* chore(localization): added explanations on how to use script files
---------
Co-authored-by: Ben Gotow <ben@foundry376.com>
* Some UX improvements (plus .gitignore tweak)
Made a few UX improvements:
- The send later delay can be skipped by clicking the new `Send now instead` button (localization required)
- If there is a range selection in the subject line then a context menu pops up on right click (for those that are allergic to keyboard shortcuts 😂)
- Message participant tweaks:
- you can now open the context menu on the name or email, not just the email
- you don't need to expand the participants to open the context menu
- name is shown over the email for `Email "Name else Email"` context menu item
- added `Copy "Email"` to context menu when nothing is selected/highlighted and just `Copy` when something is
- **for devs:** pretty console messages now consider your device theme and use an appropriate colour
* Prettier adjustments
* Revert `.gitignore` change
* Fix & actual prettier-ing
- Fix email context menu (now email and name can be alt-clicked)
- Sorted auto format (sorry didn't realise it was off)
* Use localised date/time format
Use a localised date format rather than forcing the Americanised format. This does loose the ordinal in `fullTimeString(Date)`
* Use weekday(Mon-Sun), for recent emails
- Changed recent emails to:
- display weekday and time (e.g Mon, 10:15)
- the recent emails to be 5 days, rather than 2
- Removed dead code
- Removed unnecessary import
* Remove unnecessary log
* Add key to prevent console error
Added a key to prevent a `Each child in an array or iterator should have a unique "key" prop` error in the console
* Add a key to "more" span
Co-authored-by: Ben Gotow <ben@foundry376.com>