Skip to content

Organizing mail ​

Folders ​

Right-click a folder in the sidebar for New subfolder, Rename and Delete; Trash and Junk also offer Empty, which permanently deletes everything in them. The change is made on the server (IMAP, JMAP, Microsoft Graph or EWS) and queued if you are offline. On a POP3 account folders exist only on this computer.

Moving mail by dragging ​

Drag a message onto a folder of the same account to move it there. If several messages are selected, dragging one of them moves them all, and the pointer shows how many. Folders of other accounts and the virtual entries (All Inboxes, Unread, Starred, Drafts, Sent, tags, Snoozed, Scheduled) do not accept a drop. A dragged move behaves like any other: it is queued when you are offline and can be undone.

Selecting from the keyboard ​

x selects or deselects the focused message, ⇧J / ⇧K (or ⇧↓ / ⇧↑) extend the selection, ⌘A (Ctrl+A) selects everything loaded, and Esc clears it. With a selection up, the single-key actions — archive, delete, star, read/unread, junk — act on all of it. See Keyboard shortcuts.

Undo ​

Deleting, archiving, moving and marking as junk all show a toast for a few seconds with Undo; press z while it is up. Undo puts every message back in the folder it came from, including after a bulk action.

The search bar runs a full-text query over subjects, bodies and addresses, and understands these operators:

OperatorFinds
from:alicemessages whose sender contains "alice"
to:bobmessages sent to (or cc'ing) "bob"
subject:invoice"invoice" in the subject
has:attachmentmessages with attachments
is:unread, is:starredunread or starred messages
before:2026-09-01, after:2026-08-01messages dated before / after a day
tag:"follow up"messages carrying a local tag
in:sent, in:"Work/Clients"messages in a mailbox: inbox, sent, drafts, trash, spam (or junk), archive, starred, or any folder by name or path
filename:invoice, filename:*.pdfmessages with an attachment whose name contains the text, or matches the * pattern
larger:10M, smaller:500kmessages larger / smaller than a size, in bytes or with k, m or g
"quarterly report"the exact phrase

Operators combine with each other and with free text: from:github is:unread "review requested". Values with spaces go in quotes. The search box suggests them as you type: focus it empty for the whole list, type the start of one (fr) to be offered from:, and inside one you are offered its values: contacts for from:/to:, your tags, folders, recent days and common sizes and file types. ↑/↓ choose, Tab or Enter insert, Esc closes the list; ↓ opens it after a space. in: picks the mailbox itself, so it takes over from the one you are in (inside the same account) and can reach Spam, which a search otherwise leaves out.

Gmail accounts run the same query on the server as well, with tag: sent as Gmail's label:. For other IMAP and JMAP accounts the server is searched with the free text and the operators are applied to what comes back; sizes and in: go to the server as native filters (IMAP LARGER/SMALLER, JMAP minSize/maxSize/inMailbox, a Graph or EWS folder). Neither tags nor attachment names are searched on those servers, so a tag: or filename: query is answered from the local cache alone.

filename: sees the attachments of messages whose body has been downloaded (opened, or fetched in full). Microsoft Graph does not report message sizes, so Exchange Online messages synced over Graph never match larger: or smaller:; EWS and Graph servers are not asked sized queries either.

The search field shows how many results the local search found. The list highlights the words you searched for: free words in the sender, the subject and the preview, a from: value in the sender, and a subject: value in the subject.

Attachment contents ​

Free text also matches the words inside attachments: plain text, CSV and Markdown, HTML, and Word (.docx), Excel (.xlsx) and PowerPoint (.pptx) files. The text is read when an attachment's bytes are already on your computer — the message was opened, the attachment was saved, previewed or forwarded, or a POP3 account downloaded it — never by downloading attachments for the purpose. Files over 25 MB are skipped and at most 1 MB of text is kept per attachment. PDFs, older .doc/.xls/.ppt files and images are not read. The text stays in the local database; turn it off under Settings → General → Storage → Index attachment text for search, which also deletes what was indexed.

Sorting ​

The sort button in the list header sorts by Newest first, Oldest first, Sender or Subject. The choice is remembered, and the button is tinted while a sort other than Newest first is on.

The list dates each message by when your mail server received it, as Gmail does. A message that a mailing list delivers late comes in at the top of the list, not among older mail. The reading pane shows when the sender sent the message. When the 2 times are 5 minutes or more apart, hold the pointer on the date to see both.

The paperclip beside it shows only messages with attachments. While it is on, a With attachments chip under the header says so, and its × turns the filter off.

Date groups and the reading pane ​

While the list is sorted by date it is grouped under Today, Yesterday, the days of this week, Last week, then months and years. Today's mail at the top of the list has no header, because its times ("4m", "2h") already show the day. The first header is where today ends. As you scroll, the header of the group at the top stays pinned there. Turn this off with Settings → General → Group the list by date.

Settings → General → Reading pane puts an opened message to the Right of the list, at the Bottom (drag the divider; its position is remembered), or turns the pane Off, in which case a message opens over the list and Esc or the back button returns to where you were. The command palette can cycle the three. In a narrow window the reading pane keeps its room: the list, then the sidebar, are drawn narrower down to their minimum widths, and the widths you set come back when the window is wide enough again.

Tags ​

Tags are labels of your own, independent of folders. On IMAP, JMAP and POP3 accounts they never leave your computer — they are not Gmail labels and are not synced to any server. On Microsoft 365 (Graph) and Exchange Server (EWS) accounts they are Outlook categories and sync both ways; see Categories and tags.

  • Create and apply tags from the open message: the tag button in the toolbar, or the l key, opens a picker under the subject where you tick tags or type the name of a new one. In a conversation you can tag just This message or the Whole conversation. The command palette (⌘K, type "tag") applies and removes tags too.
  • Once a tag exists, a Tags section appears in the sidebar below the accounts; with no tags there is none. Click a tag to show everything that carries it, across folders and accounts, and click it again to clear the filter. The chevron beside the heading collapses the section, and the sidebar remembers it; collapsed, it still shows the tag the list is filtered by. + beside the heading creates a tag without applying it.
  • Right-click a tag in the sidebar for Rename…, a row of colours, and Delete tag…. The confirmation says how many messages carry the tag; deleting it removes it from them and leaves the messages alone. The picker on a message can rename, recolour and delete tags as well.

Rules ​

Settings → Rules holds rules that run on new mail as it arrives, in the order listed.

  • Conditions: From contains, To or Cc contains, Subject contains, Body contains, Sender domain is, Has an attachment — matched as All conditions or Any condition.
  • Actions: Move to folder, Mark as read, Star, Archive, Delete, Mark as junk.
  • A rule applies to one account or to All accounts; a rule that moves mail must belong to one account, because folders do.
  • Run now applies a rule to the mail you already have and reports how many messages matched.

Rules act through the same paths as your own clicks, so they work offline and are replayed to the server later.

Snooze ​

The clock button in the message toolbar hides a message until Later today (18:00, or three hours from now if it is already evening), Tomorrow morning (08:00), Next week (Monday 08:00) or a time you pick. A snoozed message leaves its list and waits under Snoozed in the sidebar, where you can Unsnooze it early. When its time comes it returns to its folder unread and raises a normal new-mail notification — provided Swanmail is running; otherwise it returns the next time you start the app.

Muting and pinning conversations ​

From the toolbar's … menu or the command palette:

  • Mute thread — later replies in that conversation arrive already read and raise no notification.
  • Pin thread — the conversation stays at the top of its list.

Both are local to this computer.