Commit graph

29 commits

Author SHA1 Message Date
Ben Gotow
66beb804a6
Add header-based email unsubscribe support (RFC 2369/8058) (#2576)
* 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>
2026-01-20 09:47:33 -06:00
Ben Gotow
367cca7b47 Update translations to reference updated “its” string 2025-01-26 17:38:11 -06:00
qiuzhiqian
07c62cca53
update zh-CN localization files (#2486)
* 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>
2024-09-14 18:15:01 -05:00
Janosch Braukmann
390a301dd7
Fix: Ensure correct keytar migration on snap and improve documentation (#2474) 2023-10-23 09:28:29 -05:00
Thomas Cauquil
4643adff0d
Improve localization (#2466)
* 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>
2023-10-16 08:55:45 -05:00
Janosch Braukmann
f7cd7a7bb6
fix: ensure smooth migration from keytar (#2472) 2023-10-11 11:15:00 -05:00
Janosch Braukmann
85ef793af7
Rework tray icon style (#2470)
* feat: Make try icon style configurable

* feat: Harmonize tray icons
2023-10-09 14:44:03 -05:00
Glenn
450dfbef42
Some UX improvements (#2425)
* 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>
2022-09-13 11:24:39 -05:00
Janosch Maier
003881f06f Adjust text when messages are hidden after being moved to trash or spam 2022-04-14 09:32:52 -05:00
streppel
e1ae4cda5c fix typo on invalid attachment err message 2021-11-21 19:58:31 -08:00
Janosch Maier
d5aa3095ba
Add send and archive as configuration option to the preferences view (#2295) 2021-03-26 10:25:06 -05:00
Dee Yeum
63889c4a14
fix message (#2307)
Co-authored-by: Ben Gotow <ben@foundry376.com>
2021-03-26 10:05:31 -05:00
Jason C. McDonald
ddbeb5452d Remove all mention of old four account limit. 2021-01-28 14:52:37 -08:00
Ben Gotow
7c0cb4e6fc Retrieve online status from mailsync workers, remove is-online and it’s 56 (🤭) internal deps #1357, #1731, #1123 2020-02-17 00:23:52 -06:00
Ben Gotow
8b6abc979a Add Show first and last names of all recipients #515, #505 2019-09-23 16:10:40 -05:00
Ben Gotow
6b53ff6c91 Machine translate missing strings added in translation feature 2019-07-31 01:45:48 -05:00
Austin Lasher
ca5f9bbb88 Fix message erroneously saying mailsync *could* be found, and update (#1374)
lang file keys accordingly. Translations were not updated.
2019-02-22 21:18:50 -08:00
Ben Gotow
4d785c4166 Initial crossplatform preview support using pdfjs, mammoth, snarkdown, xlsx
PDFJS, MammothJS and SheetJS require we preserve copyright notices in the app. Need to put those somewhere!

# Conflicts:
#	app/lang/pt-BR.json
2019-01-03 01:11:11 -08:00
Ben Gotow
31660462de Fix localization of templates notice to remove &quot; 2018-11-05 11:47:54 -08:00
Ben Gotow
54cdfe6e21 Apply translation improvements from in-app feedback form 2018-10-25 16:07:39 -07:00
Ben Gotow
449d48e751 Remove hardcoded widths causing overflow in other languages 2018-10-20 12:21:47 -07:00
Ben Gotow
69cbfd3fc2 Fix handling of newlines in localized string extraction script 2018-10-09 17:17:46 -07:00
Ben Gotow
59f6f0c717 Fill gaps in translations using Google NLT API [hope contributors can improve these!] 2018-10-09 13:31:07 -07:00
Ben Gotow
866e41d506 Apply localization to updated Subscription tab text 2018-10-09 00:27:52 -07:00
Ben Gotow
9fc92feb41 Pull in new strings and update locale files 2018-10-07 23:01:05 -07:00
Ben Gotow
595c345187 Resolve localization issues tagged for followup 2018-10-07 22:19:30 -07:00
Ben Gotow
c20712df5e Add a small plugin for submitting localizations from within Mailspring 2018-10-07 01:28:30 -07:00
Ben Gotow
897e6361cb Initial localizations powered by strings on my Mac 2018-10-06 23:58:06 -07:00
Ben Gotow
01624036e3 Add en.json which is auto-generated by scripts/find-strings.js 2018-10-06 23:34:52 -07:00