Skip to content

Writing mail

Allison Bayless edited this page Oct 19, 2026 · 2 revisions

Writing mail

Press c to compose a message, or r to reply and Ctrl+R to reply all (from the message list or content pane). Reply all puts the sender (or Reply-To) in To and the other recipients in Cc, leaving out your own addresses. Recipient lines too long for the field scroll sideways as you type or move the cursor. TideMail saves your work to the sending account's Drafts folder as you type. Open Drafts and press Enter to continue writing, or d to delete a draft.

In the header rows (From, To, Cc, Bcc, Subject), Down and Up move to the next or previous row, like Tab and Shift+Tab, except that Up stops at the top row. While the recipient suggestions are open, Up and Down choose a suggestion instead. In the body they move the text cursor.

If you have more than one account, the From row works as an account picker. Focus it with Shift+Tab or Up from the To row, then press Enter or Space and choose the account. Ctrl+U cycles through the same list. TideMail uses that account's SMTP settings, From address, and signature.

A new message starts from your default account — the one marked ★ [default] in Accounts. Set it by highlighting an account there and pressing Space. Replies and forwards ignore the default and use the account the message arrived on. Without a default, a new message starts from the first account in your config.

After delivery, TideMail saves a copy to the sending account's server-side Sent folder. Gmail already files SMTP submissions itself, so TideMail does not append a duplicate there. Other providers use the server's \Sent folder flag, with common names such as Sent, Sent Items, and INBOX.Sent as fallbacks.

TideMail waits five seconds before sending by default. Press Ctrl+Z during that window to cancel delivery and reopen the draft. Change the delay under Settings → Editor, or set it to 0 to send at once.

The Outbox has a row of its own in the accounts pane, under the Unified Inbox — outgoing mail spans accounts the same way. Its badge counts the sends that need you; a message passing through on its way out adds nothing to it. Resting on the row lists what is waiting and why, and Enter, Space, or O from anywhere opens the Outbox itself, where r retries a failed message and e moves an unsent one back into compose.

The row is a doorway rather than a folder: the message pane previews it, but archiving, starring and the other folder keys do not apply to a message that has not been sent yet.

A send that fails does not go quiet. The status bar reports it — retrying 1 in Outbox while automatic retries run, then 1 failed send in Outbox (2m) once they are spent — and keeps reporting it until the Outbox has nothing left needing you. A message still inside its undo window is not a failure and says nothing.

The time in brackets is how long that message has been waiting, which is what tells you whether the warning is about the message you just sent or one that has been stuck since yesterday. Both look the same otherwise.

A delivery interrupted mid-flight, which TideMail finds when it starts up again, reads 1 unconfirmed send in Outbox instead. That wording is the point: the server may have taken the message before the connection went, so it is not a failure and TideMail will not retry it on its own. Check Sent mail before you retry one by hand.

Every attempt takes the sending address from the account as it stands at that moment, not from a copy saved when the message was queued. So if a send failed because the account's From address was wrong, correcting it and pressing r is enough — the queued message does not have to be rewritten or composed again.

Failed deliveries retry after one minute. The maximum attempt setting includes the first try; it defaults to 3, and 1 disables automatic retries. An interrupted delivery is marked uncertain because the server may have accepted it. Check Sent mail before manually retrying an uncertain message.

The standard editor is on by default. Use Shift with the arrow keys to select text, Ctrl+C/Ctrl+X/Ctrl+V for the system clipboard, Ctrl+Z/Ctrl+Y for undo and redo, and Ctrl with the arrow keys to move by word.

Enable Vim keys under Settings → Editor if you prefer modes, motions, counts, operators such as dw, cw, and dd, and a command line. :w sends the message, while :q cancels it.

Replies and forwards quote the readable text of an HTML message, not its markup, and a forward keeps the original's attachments.

Templates

Press F6 in compose (the footer shows f6 templates in every field) to open the template picker: canned replies you can insert at the cursor. The built-ins are Thanks, Got it, Out of office, Propose a meeting, Polite decline and Follow up. Choose one with ←/→ or ↑/↓ (the highlighted template is previewed in the message area, tags shown as written) and press Enter to insert it as one undo step. The subject is set only if it is empty. Without an F6 key, use Insert template… in the command palette.

  • e edits the highlighted template in place: Ctrl+S saves it, Esc discards the edit. Editing a built-in saves your own copy, which replaces it.
  • n saves the message you are writing as a new template: type a name and press Enter. Quoted text in a reply or forward is left out. Names can't repeat, start with ., or contain /, \ or :.
  • Tags are filled when you insert: {first_name} (first word of the first recipient's display name, or "there"), {name} (the full display name), {my_name} (the sending account's name) and {date} (today). Unknown tags stay as written.

Templates are plain files. Any .md or .txt file in the templates folder next to config.toml (~/.config/tidemail/templates) is a template named after the file without its extension, and a file named like a built-in replaces it. A file may start with a --- block holding subject: ...; the rest is the body. Files over 64 KiB, hidden files and files that are not UTF-8 text are ignored. tidemail templates list and tidemail send --template NAME use the same templates; see the CLI reference.


Source in TideMail at 9621bf2

Clone this wiki locally