| Verb | gmail | outlook | fastmail | protonmail |
|---|---|---|---|---|
auth *, read, search, show | yes | yes | yes | yes |
draft, reply, drafts, send | yes | yes | no | yes |
archive, mark-read, mark-unread, trash | yes | yes | no | yes |
thread, label, labels, labels-create | yes | no | no | no |
untrash | yes | no | no | no |
filter *, reconcile, file-inbox | yes | no | no | no |
Gmail
Full surface. Message ids and thread ids are Gmail ids. Search is Gmail search syntax.Outlook
Read plus send, draft, reply, and the four organize verbs, over Microsoft Graph. Covers personaloutlook.com / hotmail.com / live.com and Microsoft 365 work accounts. Setup is one browser consent — see Setup.
Message ids are long opaque immutable Graph ids. An id keeps working after the message moves folder.
labels in JSON output is the message’s folder name, one entry.
Search uses the same small from: / in: subset as Fastmail and Proton.
Gmail labels, filters, reconcile, file-inbox, untrash, and thread are refused. Graph has folders and categories, not Gmail labels, so mailkit errors rather than doing something else under the same verb name.
Fastmail
Read path only. Credential is a static API token. Search compiles only:from:xfrom:(a.com OR b.com)-from:xin:inbox
Proton Mail
Read plus send/draft through Bridge on this Mac. Message ids aremailbox:uid, for example INBOX:12. Use that same string with show, reply, archive, trash.
Search uses the same small from: / in: subset as Fastmail.
Bridge must stay running. See Setup.
If you guess wrong
mailkit auth list and pick a Gmail, Outlook, or Proton Mail account for write verbs.