Webmail for Stalwart · free and open source
Silly name,
serious mail.
ihasmail is a webmail app for Stalwart Mail Server. Mail, calendars, contacts, files and filters, in one app that works the same on a phone as on a desktop. It keeps nothing of its own — everything you have stays in your mail server, where your backups already are.
Setting up a new mail server, or upgrading an older Stalwart? Two tools get you ready.
Like our webmail? Check out our WireGuard server too: ihasvpn.
What it does
One app for the whole account
Mail, calendars, contacts and files, without switching between four different things. Where your server does not offer something, the part that needs it steps aside quietly rather than breaking.
Mail that works the way you expect
Conversations, a list that keeps scrolling, drag and drop, right-click menus and the keyboard shortcuts your fingers already know. Archive, label, move and delete all come with an Undo, so a mis-click costs you nothing.
A real calendar
Month, week, day and agenda views, repeating events, reminders, time zones and color categories. Send invitations and get replies; check whether someone is free before you ask. Turn an email into an event and it arrives with the subject, the message and the people already filled in.
Contacts and files
Address books with groups and a proper editor, and import that updates what is already there instead of leaving you with everyone twice. Files gives you folders you can drag things between. Anything already stored can be attached to a message without uploading it again, however big it is.
Search you can just type
The searches you already know work as written — from:,
subject:, has:attachment, is:unread — with
a panel of boxes to fill in if you would rather click. It searches your whole
mailbox, not only the part currently on screen.
Writing, without losing your place
Write several messages at once in windows you can move around. Formatting, inline images, signatures, saved templates, and addresses that complete themselves as you type. Send later works even if you close the laptop — the server holds it and sends it for you.
New mail just appears
No refresh button, because there is nothing to refresh. Mail lands as it arrives, with a desktop notification and an optional sound, and an unread count on the tab and its icon — so the tab tells you before you go and look.
Filters you build by pointing at things
Right-click a message, choose Filter messages like this…, and the rule is written for you from the sender or the mailing list — creating the folder it files into if it does not exist yet, and tidying the mail already sitting there.
Private unless you say otherwise
Images in a message stay blocked until you allow them, so a sender cannot tell whether you opened it. Allow a sender you trust and it remembers. Read receipts are always offered to you first, never sent behind your back.
Eleven languages, and honest about them
Alongside English: German, Spanish, French, Dutch, Portuguese (Brazil), Russian, Ukrainian, Simplified Chinese, Japanese and Turkish. Dutch has been reviewed by a native speaker, and Turkish was contributed and checked by one. The other eight are marked Beta, because they were translated by AI and no native speaker has read them yet. The app says so, next to a link for telling us what reads wrongly.
Dates and numbers are set separately from the language, so an English screen with German dates is a choice rather than a compromise.
Your settings follow you
Theme, language, signatures, labels, folder colors — they live with your mail, not in the browser. Sign in from a different computer, or a private window, and everything is where you left it. They are backed up with your mail, because they are part of it.
Install it like an app
Add it to a phone's home screen and it behaves like any other mail app — bottom tabs, full-screen writing, swipe to archive or delete, hold to select, pull to refresh. Set it as your default mail app and links in other programs open here, already addressed.
For the people who run the server
If your role on the mail server lets you look after accounts and domains, you can do it from here: add people, reset a password, set up a new domain and copy the DNS records it needs, one at a time. You only see what your role allows, and only on a device you have said is your own.
Running more than one mail server? One ihasmail can sit in front of all of them, and the address someone signs in with decides where they go.
Screenshots
Light or dark, desktop or phone
It follows whatever your computer is set to, or you can pick a side — along with accent colors and how much breathing room you like.
Sign-in
Stalwart mailbox credentials, with TOTP where it's enabled.
Inbox & conversation — dark
Three panes, collapsed conversation, labels with colors.
Inbox & conversation — light
The same screen, following a light system preference.
Reply composer
Identities, Reply-To, rich text, signature and quoted text.
Choosing recipients
Read the address books instead of remembering a name — yours and anyone's shared with you, several at a time.
Calendar
Month view, multiple calendars, color categories.
Files
A folder tree, drag-and-drop between folders, and folders shared by other people beneath your own.
Contacts
Address books, groups, and a full JSContact editor — yours kept apart from anyone else's.
Sieve filter builder
Also reachable from a message's right-click menu.
Mobile layout
Bottom tab bar, drawer navigation, full-screen composer.
All screenshots are taken against the built-in mock server with sample data — no real mailbox involved.
Running it
Nothing of its own to keep
ihasmail has no database, no storage and no files it needs to hold on to. Every message, event, contact and setting lives in your mail server — so the backup you already take is the whole backup.
What that means in practice
- One container to start, and nothing to set up alongside it — no database to install, tune or upgrade
- Delete it and lose nothing. Start it again somewhere else and everything is still there, because it was never in ihasmail to begin with
- Updating is replacing the container with a newer one. There is no data to migrate, so there is no migration to go wrong
- It can run with its filesystem locked read-only
- Your settings ride along with your mail, so they survive the same way
What it needs from you
- A Stalwart Mail Server to point it at — that is where your mail already is
- Somewhere to run one small container, which can be the same machine
- No accounts to create: people sign in with the mailbox details they already have
- No tracking, no telemetry, no phoning home, and nothing that needs an account with us
Setting it up takes a few minutes, and the documentation walks through it. If you would rather read the code first, it is all on Gitea.
Two tools to get your server ready
ihasmail needs Stalwart 0.16 or newer. Whichever of these is where you are starting from, there is a companion tool that takes care of it.
Starting from nothing
ihasmail-oneshot
Turns a fresh server into a mail server with webmail, in one command. It sets up Stalwart and ihasmail together, connects them, gets their security certificates, creates the first mailboxes, and hands you the list of DNS records to add.
ihasmail-oneshot on GiteaAlready running Stalwart 0.15.5
stalwart-migrator
Upgrades the Stalwart server you already have, in place, to a version ihasmail works with. If it is interrupted it picks up where it stopped, and afterwards it checks the server still works. Take a snapshot first: it cannot undo an upgrade.
stalwart-migrator on GiteaSafety
Your password never reaches the browser
A webmail app sits between somebody's mail and the open internet. These are the parts of that we took seriously.
Signing in
- Your password is handed to the mail server and never stored in the browser, where a bad script on the page could reach it
- Two-factor codes are supported wherever your server has them turned on
- Repeated failed sign-ins are slowed down, so a guessing attack gets nowhere
- You can see the other places you are signed in, and sign them all out at once
Reading mail
- Messages are cleaned of anything that could run before they are shown to you
- Images from senders stay blocked until you allow them, one sender at a time
- When you do allow them, they can be fetched on your behalf so the sender learns nothing about you
- Attachments are handled so that opening one cannot take over the page
The full detail, including how to report something, is in SECURITY.md.
License
Free software, with nothing held back
ihasmail is free and open source under the AGPL. There is no paid tier, no enterprise edition, and nothing switched off behind a license key.
The license asks one thing in return: if you change ihasmail and run it for other people, those people are entitled to your version of the code the same way you were entitled to ours.
AGPL-3.0-or-later
Copyright © 2026 Coffey Labs.
About
Built for one mailbox, then everyone else's
ihasmail started because Stalwart is an excellent mail server, and the web clients pointed at it did not do it justice. It was written for one real mailbox first, and it is still judged that way — everything here is in daily use by the person who made it.
It is made by Coffey Labs. Bug reports, ideas and patches are all welcome on Gitea, and the documentation covers installing and running it.
AI disclosure
How AI was, and was not, used
In the product
None. ihasmail does not read, summarize or generate anything from your mail, and none of your messages are sent to any AI service. Your mail is held by your own server and goes nowhere else. The privacy notice says so in full.
In building it
Parts of the code, the documentation and this site were written with the help of AI tools. Every one of those contributions is reviewed, tested and maintained by a person, and the whole result is there to read on Gitea.