Say what "even when ihasmail is closed" actually means
Web Push works, confirmed end to end against the live 0.16.19: with Chrome open and every ihasmail tab closed, a notification arrives immediately and names the sender and subject. But "closed" means ihasmail, not the browser, and the switch did not say so. Web Push is delivered over a connection the browser holds, so something of it has to be running. Observed on 2026-08-26, with Chrome fully quit and "Continue running background apps" off: nothing arrived until Chrome was started again, at which point the queued notification was delivered. Turning that setting on keeps a process alive and restores immediate delivery. Worth knowing that the queue is not indefinite -- a Web Push message carries a TTL, and one that expires before the browser comes back is dropped rather than delivered late. Being an installed PWA does not change any of this on a desktop; it changes the window, not who holds the connection. On Android it would, since the push service can wake the browser from cold. None of this is ihasmail's to fix. It is what Web Push is, and the only thing worth doing about it is not implying otherwise -- which the notification switch was quietly doing.
This commit is contained in:
@@ -71,8 +71,8 @@ export function NotificationsSettings() {
|
||||
!canBackground
|
||||
? "Needs a browser with the Push API and a mail server that publishes a push key."
|
||||
: supportsEmailPush()
|
||||
? "Your mail server delivers these directly to your browser, so they arrive with no tab open. The sender and subject travel in the notification."
|
||||
: "Your mail server can wake this browser, but will not include the sender or subject."
|
||||
? "Your mail server delivers these straight to your browser, so they arrive with no ihasmail tab open, naming the sender and subject. Your browser still has to be running — if you quit it completely, notifications wait and arrive when you open it again."
|
||||
: "Your mail server can wake this browser, but will not include the sender or subject. Your browser still has to be running."
|
||||
}
|
||||
/>
|
||||
<Switch checked={s.notificationSound} onChange={(v) => update({ notificationSound: v })} label="Play a sound for new mail" />
|
||||
|
||||
Reference in New Issue
Block a user