Feature: read receipts (MDN, RFC 8098)
Bulwark had no read-receipt support (JMAP/Stalwart have no native MDN). End-to-end, client-side, in three parts: - Request (compose): a toolbar toggle (MailCheck, green when on) sets Disposition-Notification-To on the outgoing message via the JMAP "header:<name>:asText" create property. Threaded composer -> page -> email-store -> client.sendEmail. Default from requestReadReceiptDefault. - Detect (viewer): reads Disposition-Notification-To case-insensitively from the parsed headers and shows a banner (green Send / red Ignore) in the unified notification bar. Hidden in Sent/Drafts/Trash/Junk and once handled. message/disposition-notification + message/delivery-status report parts are filtered out of the attachment list. - Respond (MDN): lib/mdn.ts builds an RFC 8098 multipart/report (text/plain + message/disposition-notification, UTF-8/base64, localized subject + body). client.sendReadReceipt uploads the blob, imports it into Sent via Email/import, then submits with an explicit envelope. Both Send and Ignore set the $MDNSent keyword (RFC 3503) so no client re-prompts. Behaviour configurable: ask / always / never. New: lib/mdn.ts, read-receipt-banner.tsx. Settings (requestReadReceiptDefault, readReceiptResponse) + UI. All 17 locales.
This commit is contained in:
@@ -260,6 +260,15 @@
|
||||
"reschedule_prompt": "Zadejte nové datum/čas, např. 2026-05-04T15:30"
|
||||
},
|
||||
"email_viewer": {
|
||||
"read_receipt": {
|
||||
"prompt": "Odesílatel žádá o potvrzení o přečtení:",
|
||||
"send": "Odeslat potvrzení",
|
||||
"ignore": "Ignorovat",
|
||||
"sent": "Potvrzení o přečtení odesláno.",
|
||||
"send_failed": "Potvrzení o přečtení se nepodařilo odeslat",
|
||||
"mdn_subject": "Přečteno: {subject}",
|
||||
"mdn_body": "Toto je potvrzení o přečtení zprávy, kterou jste odeslali na adresu {recipient}.\n\nPoznámka: Toto potvrzení pouze potvrzuje, že zpráva byla zobrazena na počítači příjemce. Nezaručuje, že příjemce obsah přečetl nebo mu porozuměl."
|
||||
},
|
||||
"no_email_selected": "Není vybrána žádná zpráva",
|
||||
"no_email_description": "Vyberte zprávu ze seznamu pro její zobrazení",
|
||||
"no_conversation_selected": "Není vybrána žádná konverzace",
|
||||
@@ -545,6 +554,8 @@
|
||||
"undo_send": "Vrátit odeslání"
|
||||
},
|
||||
"email_composer": {
|
||||
"read_receipt_on": "Vyžádáno potvrzení o přečtení (kliknutím vypnete)",
|
||||
"read_receipt_off": "Vyžádat potvrzení o přečtení",
|
||||
"new_message": "Nová zpráva",
|
||||
"reply": "Odpovědět",
|
||||
"reply_all": "Odpovědět všem",
|
||||
@@ -1006,6 +1017,17 @@
|
||||
}
|
||||
},
|
||||
"email_behavior": {
|
||||
"request_read_receipt": {
|
||||
"label": "Standardně vyžadovat potvrzení o přečtení",
|
||||
"description": "Při psaní nové zprávy předem zapnout žádost o potvrzení o přečtení."
|
||||
},
|
||||
"read_receipt_response": {
|
||||
"label": "Reagovat na žádosti o potvrzení o přečtení",
|
||||
"description": "Co dělat, když příchozí zpráva žádá o potvrzení o přečtení.",
|
||||
"ask": "Vždy se zeptat",
|
||||
"always": "Vždy odeslat",
|
||||
"never": "Nikdy neodesílat"
|
||||
},
|
||||
"title": "Chování e-mailu",
|
||||
"description": "Nakonfigurujte způsob zpracování e-mailů",
|
||||
"mark_read": {
|
||||
|
||||
Reference in New Issue
Block a user