Organising mail¶
Every change here is a durable operation: the row moves at once, the op lands in a local log, and the daemon replays it against the server when it next talks to it. Offline changes queue; nothing needs the network to feel done.
Archive¶
A sends the selected (or open) message to the account's
archive folder. The folder is archive unless the account
names another:
[account]
archive = "archive"
Move¶
C opens a picker over the account's other folders; J
/ K and Enter move the message, Esc closes.
:move <folder> does the same by name, and accepts a folder
alias, the real path, or inbox for the account root.
Server-side, moves use IMAP UID MOVE where the server
offers it and fall back to copy-and-expunge where it does
not. The target folder must exist on the server; the daemon
resolves the local name back to the server's own spelling.
Read, flag, delete¶
- M toggles the message between read and unread.
- Shift+M marks the whole listing read, the entire selected folder or search, not just the visible rows.
- Shift+F toggles the flag (
⚑in the list). - D moves the message to the account's trash folder
(
trashunless the account names another with thetrashkey); your server's own expiry empties it. Only inside the trash folder does D delete, and then behind an explicitdelete forever? y/n.
Opening a message marks it read; the server's \Seen flag
follows.
Delivery rules¶
Rules run in the daemon as mail arrives, first match wins:
[[rules]]
match_list = "~sircmpwn/aerc-devel"
move_to = "lists/aerc"
[[rules]]
match_sender = "billing@example.net"
tag = "invoices"
move_to files the message like a hand move (and replays to
the server the same way); tag adds a notmuch tag you can
search and save. See accounts
for the full rule shape.
Unsubscribing¶
:unsubscribe acts on the open message's List-Unsubscribe
header. A one-click (RFC 8058) entry asks for confirmation
naming the list, then hands the POST to the daemon, which
requires https and performs it off your machine's ordinary
client path; a mailto entry opens a prefilled compose; a
web-only entry shows you the URL and touches nothing.
Conflicts¶
The server wins. If a message you flagged offline was deleted elsewhere in the meantime, the op is dropped and the log says so; replays never guess, and a failed op never wedges the queue behind it.