Use when the user wants to read, search, or organise their email inbox, read message content, manage folders, archive messages, or draft a reply or new message — all from the terminal via IMAP. Works with Gmail, Fastmail, Outlook, and any IMAP provider.
> If sending is not explicitly enabled or approved by the user, always save outgoing messages as a draft instead of sending.
Install neomutt and w3m (HTML email renderer):
# macOS
brew install neomutt w3m
# Ubuntu / Debian
sudo apt install neomutt w3m
Create ~/.config/neomutt/neomuttrc (or ~/.neomuttrc):
set imap_user = "user@gmail.com"
set imap_pass = "*****"
set folder = "imaps://imap.gmail.com:993"
set spoolfile = "+INBOX"
set ssl_force_tls = yes
set imap_keepalive = 300
set mail_check = 60
set postponed = "+[Gmail]/Drafts"
set sort = reverse-date
# HTML handling
auto_view text/html
alternative_order text/plain text/html
For other providers change imap.gmail.com:993 and [Gmail]/Drafts to match your server. For Gmail, imap_pass should be an App Password (Google Account → Security → 2-Step Verification → App Passwords).
Create ~/.config/neomutt/mailcap so w3m renders HTML parts:
text/html; w3m -I %{charset} -T text/html; copiousoutput;
neomutt
Opens the inbox. To open a specific folder directly:
neomutt -f imaps://imap.gmail.com/INBOX
neomutt -f imaps://imap.gmail.com/[Gmail]/All%20Mail # Gmail — All Mail
neomutt -f imaps://imap.fastmail.com/INBOX # Fastmail example
| Key | Action |
|---|---|
| --- | --- |
j / k | Move down / up |
Enter | Open message |
q | Back / quit |
? | Full keybinding help |
| Key | Pattern | Example |
|---|---|---|
| --- | --- | --- |
/ | Search visible list by subject/sender | /invoice |
l | Limit view to a pattern | l ~f boss@example.com |
l . | Clear limit (show all) |
Search pattern syntax: ~f · ~s · ~b · ~d
Press Enter on a message. HTML parts render automatically via w3m.
| Key | Action |
|---|---|
| --- | --- |
Space / - | Page down / up |
h | Toggle headers |
v | View MIME attachments |
q | Return to index |
| Key | Action |
|---|---|
| --- | --- |
| Automatic | Message is marked read when opened |
N | Toggle unread on selected message |
t | Tag message; then ;N to mark tagged set |
Move the message out of INBOX into your archive folder:
s → type folder name → Enter
On Gmail the archive folder is [Gmail]/All Mail. Add a macro for one-key archiving:
macro index A "<save-message>=[Gmail]/All Mail<enter><enter>" "Archive"
Folders in IMAP, labels in Gmail — same thing. Move or copy a message:
C → type folder name → Enter # Copy (message stays in current folder too)
s → type folder name → Enter # Move (removes from current folder)
m
Fill in To:, Subject:, write body, then:
| Key | Action |
|---|---|
| --- | --- |
Ctrl-X (in editor) | Finish editing and go to send screen |
y | Send (only if sending is approved) |
P | Postpone — saves to the drafts folder |
q | Abort / discard |
> Default behaviour: press P to postpone (save draft) unless the user has explicitly asked to send.
neomutt -f imaps://imap.gmail.com/[Gmail]/Drafts # Gmail
neomutt -f imaps://imap.fastmail.com/Drafts # Fastmail / generic
Open the draft and press e to edit, then y to send or P to re-postpone.
q → confirm with y
共 1 个版本