Using ihasmail¶
Most of ihasmail works the way a webmail client is expected to work, and this page does not describe that. What follows is the set of behaviours that are deliberate, surprising, or easy to misread — the things worth knowing before you meet them.
Press ? anywhere for the keyboard shortcuts — or read the full reference. The ones worth learning first: C compose · / search · J/K navigate · E archive · G then I inbox · Ctrl+Enter send.
Mail¶
Remote images are blocked, and unblocking has two shapes¶
Nothing remote loads until you say so, per sender. What "say so" does depends on how the instance was configured: with the privacy image proxy on (the default), images are fetched by your server, so the sender learns nothing about you. With it off they load directly, and the sender learns your IP address, your user agent and the moment you opened the message.
"Delete all spam" destroys, and does not use the bin¶
A banner across the top of Junk Mail, and an item in the folder's and list's menus, empties it in one action. The messages are destroyed, not moved to Deleted Items — routing spam through the bin leaves you with the same problem in another folder. The dialog says so, and there is no undo.
Only Deleted Items and Junk Mail can be emptied this way. That is enforced where the action happens, not merely hidden in the menus.
Read receipts are always a decision¶
When a sender asks for one, the message offers to send it. Nothing is ever sent automatically, and there is deliberately no "always send" setting: a receipt confirms to whoever asked that the address is live and when it was read, to an address of their choosing. Each one is worth a moment's thought.
Bulk mail, mailing lists and anything marked Auto-Submitted are not offered
one at all, and a receipt aimed somewhere other than the sender says so before
you send it.
Sending is recorded with the $mdnsent keyword, so a second look — or another
client — knows not to ask again. The receipt lands in Sent, because ihasmail
assembles the multipart/report itself and submits it like any other message;
Stalwart does not implement JMAP's own MDN extension.
"Filter messages like this…"¶
Right-click a message and ihasmail opens the rule builder pre-filled from the sender or the list it came from, target folders creatable on the spot. The useful part is the checkbox at the bottom: apply it to the messages already in this folder, evaluated there and then rather than only from now on.
Labels are IMAP keywords¶
Labels with colours are keywords on the message, so they are visible to every other client that reads the mailbox, and they survive ihasmail entirely. They are not folders and a message can carry any number.
Undo, and undo send¶
Archive, delete, spam, star, mark-read, move and label all offer Undo immediately after. Sending offers a window in which the message can be pulled back before it goes anywhere.
Scheduled send is a different mechanism: the message waits in Stalwart's queue, so it goes out whether or not ihasmail is open. It appears in a Scheduled folder that ihasmail maintains itself, moving released messages to Sent and cancelled ones back to Drafts the next time you open it. If you never open ihasmail again the message still goes out on time — only the folder waits to be tidied.
Scheduled send depends on a server setting
If Stalwart's futureRelease is not set, a scheduled message is sent
immediately, with no error and no sign that the hold was dropped. See
Configure.
Filters (Sieve)¶
Settings › Filters is a visual rule builder that round-trips to a real Sieve script — build rules in the UI, or open the raw script and write Sieve directly. Either way the server validates before it is saved, so a script that Stalwart will not accept is refused in front of you rather than silently failing later.
Out-of-office lives beside it, as a VacationResponse rather than a rule you
have to write.
Calendar¶
Month, week, day and agenda views over JMAP Calendars, with multiple calendars, colours, sharing, and events created by click or drag.
Attendees and RSVP work end to end: invitations go out as iTIP, replies come back and are applied to the event, and cancelling notifies the guests. Free/busy lookup is available when scheduling.
Colour categories are Outlook-style: named colours managed in Settings,
assigned from the context menu or the editor, stored as JSCalendar categories
so other clients see them too.
Recurring events change as a series
Colour, category, edits and deletion apply to the whole series. Per-occurrence overrides are not supported by the server yet, so ihasmail does not offer them rather than pretending to.
Contacts¶
Address books with sharing and a default, full contact records (names, emails, phones, addresses, organisation, birthday, photo, notes), groups, and vCard import and export.
The part people miss: right-click anyone named in a message — sender, To, Cc, Bcc or Reply-To — to add them to the address book with the editor prefilled and the display name already split into first and last, edit them if they are already known, write to them, or copy the address.
Files¶
Browse, upload by drag and drop, download, create folders, rename, move and
delete, over JMAP FileNode.
One folder is missing on purpose: ihasmail, contents and all. It holds
your settings file and any images used in signatures. Hiding the folder alone
would have been worse than showing it — the tree attaches a node whose parent
is missing to the root, so the signature images would have spilled into the top
level.
Settings¶
They follow the account, not the browser¶
Preferences live in a settings.json in the account's own Files, so identity,
signatures, locale, date and time formats, theme, labels, templates and folder
colours are the same wherever you sign in, private windows included. They are
backed up with the mail store, because they are in the mail store.
Two limits worth knowing: conflicts are last-write-wins, and a change made on one device does not reach another that already has ihasmail open until it signs in again.
Settings that describe this screen stay local, deliberately: pane sizes, density, font size, sidebar state, and the notification toggles, which track a permission the browser grants per device.
Dates, times and locale¶
Settings › Dates & times covers language and region, date order — locale
default, 22.11.2025, 22/11/2025, 11/22/2025, or ISO 2025-11-22 — and a
12- or 24-hour clock, applied everywhere.
The default comes from the locale configured for the account on Stalwart, falling back to the browser. Numerals follow the locale, except under ISO 8601, which pins date and clock to Latin digits.
Dates are entered through ihasmail's own pickers rather than the browser's,
because browsers render <input type="date"> in their own locale and ignore
the page's. Typing is lenient: 22.11., 221125, 6:23pm and bare ISO all
parse.
Non-Gregorian calendars
Editable date boxes are always Gregorian and in Latin digits, even for locales whose display uses another calendar or numbering system. They keep the locale's field order and separator, but a Buddhist-era year in a text box does not round-trip against a Gregorian grid. Non-Gregorian calendar support is not implemented.
Security, without an administrator¶
Settings › Security is self-service: change your password, manage app passwords — a separate revocable password per mail app or device — and turn two-factor authentication on or off by scanning a QR code.
Enrolment codes are verified before anything is stored, so a mistyped key cannot lock you out, and switching 2FA on moves the current browser session onto a dedicated app password instead of signing you straight back out.
If your account is backed by an external directory (LDAP, SQL, OIDC), Stalwart refuses password changes and ihasmail shows you the server's own reason.
Making ihasmail the default mail app¶
Settings › General can register ihasmail as the browser's handler for mailto:
links. It needs HTTPS and a browser that supports it — Safari does not.
Installed as an app, ihasmail also declares protocol handlers in its manifest,
which is what lets the operating system offer it wherever something asks for a
mail client. Links arrive with recipients, Cc, Bcc, subject and body filled in.
What ihasmail does not do¶
- Snooze. Nothing in JMAP or Stalwart supports it, and ihasmail never stores a password, so nothing could act on a mailbox while you are away.
- Other languages. Strings are English only for now.
- Per-occurrence recurring event overrides, as above.
Back to Installing or Configuring.