How Mail behaves.
Every command under proton mail settings, with the arguments and flags it takes. For these commands in use, see the mail guide.
Holds addresses, autoreply, domains, filters, folders, forwarding, get, labels, list, senders, set and smtp-tokens.
Your addresses, display names and signatures.
An address sends and receives mail under its own name. Adding, disabling and deleting one needs a paid Mail plan. Your first Proton address and your short-domain address stay enabled and cannot be deleted.
Holds create, delete, disable, enable, get, list, reorder and update.
Add an address to the account.
EMAIL is the address to add. Its domain has to be one the account can use: a Proton domain, or a custom domain already set up. Adding an address needs a paid Mail plan.
Your short-domain address is your username at pm.me. It takes the signature of your default address, and its display name unless you pass --display-name. Once it exists it cannot be disabled or deleted.
The address sends and receives as soon as it exists. An account that creates post-quantum keys is refused: add the address in a Proton client.
Asks for your password even when you are signed in. With no terminal to ask, pass --password-file, which takes - for stdin.
proton mail settings addresses create EMAIL
proton mail settings addresses create work@example.com
proton mail settings addresses create work@example.com --display-name Work
proton mail settings addresses create alice@pm.me| Flag | Description |
|---|---|
--display-name string |
Name recipients see next to the address |
--password-file string |
Read the account password from a file, or - for stdin |
--totp string |
Two-factor code |
Delete addresses.
REF is an address of yours. Proton allows one address deletion a year unless the address is on a custom domain. Your first Proton address, your short-domain address and the account's default address cannot be deleted.
A deleted address cannot be used again, by you or by anybody else.
Asks for your password even when you are signed in. With no terminal to ask, pass --password-file, which takes - for stdin.
proton mail settings addresses delete REF...
proton mail settings addresses delete work@example.com| Flag | Description |
|---|---|
--password-file string |
Read the account password from a file, or - for stdin |
--totp string |
Two-factor code |
Stop an address sending and receiving.
REF is an address of yours that is enabled. Everything it already holds stays, and enabling it again needs nothing else.
Asks for your password even when you are signed in. With no terminal to ask, pass --password-file, which takes - for stdin.
proton mail settings addresses disable REF...
proton mail settings addresses disable work@example.com| Flag | Description |
|---|---|
--password-file string |
Read the account password from a file, or - for stdin |
--totp string |
Two-factor code |
Let a disabled address send and receive again.
REF is an address of yours that is disabled.
Asks for your password even when you are signed in. With no terminal to ask, pass --password-file, which takes - for stdin.
proton mail settings addresses enable REF...
proton mail settings addresses enable work@example.com| Flag | Description |
|---|---|
--password-file string |
Read the account password from a file, or - for stdin |
--totp string |
Two-factor code |
Show one address, including its signature.
proton mail settings addresses get REF
proton mail settings addresses get me@proton.meList the addresses on the account.
proton mail settings addresses list
proton mail settings addresses list| Flag | Description |
|---|---|
--limit int |
How many addresses per page; 0 for all of them |
--page int |
Which page of results, counting from zero |
Make an address the default, or set their order.
The first address is the default: mail leaves from it when no --from is given. Name the addresses that should come first, in order; the rest keep the order they are in.
A disabled or external address, or one that cannot send or receive, cannot be the default.
proton mail settings addresses reorder REF...
proton mail settings addresses reorder alice@pm.me
proton mail settings addresses reorder alice@pm.me work@example.com alice@proton.meSet the display name recipients see and the signature appended to mail sent from this address.
A signature is stored as HTML. Plain text is escaped and its newlines become line breaks; --html passes markup through untouched.
proton mail settings addresses update REF
proton mail settings addresses update me@proton.me --display-name 'Roman'
proton mail settings addresses update me@proton.me --signature - --html
proton mail settings addresses update me@proton.me --clear-signature| Flag | Description |
|---|---|
--clear-signature |
Remove the signature |
--display-name string |
Name recipients see next to the address |
--html |
Treat the signature as HTML rather than escaping it |
--signature string |
Signature appended to mail from this address (- reads stdin) |
The automatic reply and its schedule.
Holds disable, enable, get and set.
Turn the auto-reply off, keeping its schedule.
proton mail settings autoreply disable
proton mail settings autoreply disable| Flag | Description |
|---|---|
--password-file string |
Read the account password from a file, or - for stdin |
--totp string |
Two-factor code |
Turn the auto-reply on, keeping its schedule.
proton mail settings autoreply enable
proton mail settings autoreply enable| Flag | Description |
|---|---|
--password-file string |
Read the account password from a file, or - for stdin |
--totp string |
Two-factor code |
Show the auto-reply and its schedule.
proton mail settings autoreply get
proton mail settings autoreply getConfigure the auto-reply and turn it on.
--start and --end are written in the grammar the repeat mode dictates: fixed 2026-07-01T09:00 a date and time in your zone daily 09:00 a time of day, with --days weekly mon:09:00 a weekday and time monthly 1:09:00 a day of the month and time permanent - no bounds
Proton sends every auto-reply with the subject "Auto" and offers no way to change it. Auto-reply is a paid feature.
proton mail settings autoreply set
proton mail settings autoreply set --repeat permanent --body 'Away until Monday.'
proton mail settings autoreply set --body 'On holiday.' --start 2026-07-01T09:00 --end 2026-07-14T17:00| Flag | Description |
|---|---|
--body string |
The reply to send (- reads stdin) |
--days stringSlice |
Days it is active, for a daily schedule, e.g. mon,tue,wed |
--end string |
End of the window (grammar depends on --repeat) |
--html |
Treat the body as HTML rather than escaping it |
--password-file string |
Read the account password from a file, or - for stdin |
--repeat string |
How the schedule repeats: fixed, daily, weekly, monthly, permanent (default fixed) |
--start string |
Start of the window (grammar depends on --repeat) |
--totp string |
Two-factor code |
Custom domains, and where stray mail goes.
A custom domain sends and receives under your own name. Adding one needs a paid Mail plan, and how many you may have depends on it.
A domain carries no mail until its DNS entries are in place. get shows them and says which ones Proton can see.
Holds create, delete, get, list and update.
Add a custom domain to the account.
DOMAIN is a domain you own, written as example.com. Adding one needs a paid Mail plan.
The domain carries no mail until its verification entry is in your DNS, and no address can be added on it until Proton has seen that entry. get shows every entry the domain needs.
Asks for your password even when you are signed in. With no terminal to ask, pass --password-file, which takes - for stdin.
proton mail settings domains create DOMAIN
proton mail settings domains create example.com| Flag | Description |
|---|---|
--password-file string |
Read the account password from a file, or - for stdin |
--totp string |
Two-factor code |
Remove a custom domain.
Every address on the domain stops sending and receiving, and the mail they hold stays. Adding the domain again needs its DNS entries verified from scratch.
Asks for your password even when you are signed in. With no terminal to ask, pass --password-file, which takes - for stdin.
proton mail settings domains delete REF
proton mail settings domains delete example.com| Flag | Description |
|---|---|
--password-file string |
Read the account password from a file, or - for stdin |
--totp string |
Two-factor code |
Show a domain's DNS entries and their status.
Reads the domain's DNS again each time it runs, so what it reports is what Proton can see now.
Each check reads ok, missing, wrong, duplicate, wrong-priority, backup, error, warning, delegated or relaxed. Every entry has to stay in place: removing the verification entry gives the domain up.
proton mail settings domains get REF
proton mail settings domains get example.comList the custom domains on the account.
STATUS is active, unverified or warning. DNS is ok, or the checks that are not passing. Both come from the last check Proton made; get checks again.
proton mail settings domains list
proton mail settings domains list| Flag | Description |
|---|---|
--desc |
Reverse the order |
--limit int |
How many domains per page; 0 for all of them |
--page int |
Which page of results, counting from zero |
--sort string |
Order by: domain (default domain) |
Set the address that catches stray mail.
Mail sent to a name that does not exist at the domain arrives at the catch-all address instead of being refused.
--catch-all takes one of your addresses on that domain. One address catches at a time, so naming another moves it, and --catch-all none turns it off.
Asks for your password even when you are signed in. With no terminal to ask, pass --password-file, which takes - for stdin.
proton mail settings domains update REF
proton mail settings domains update example.com --catch-all work@example.com
proton mail settings domains update example.com --catch-all none| Flag | Description |
|---|---|
--catch-all string |
Address that takes mail sent to a name the domain has not got, or none |
--password-file string |
Read the account password from a file, or - for stdin |
--totp string |
Two-factor code |
Server-side Sieve filters.
Holds apply, create, delete, disable, enable, get, list, reorder and update.
Run filters over mail that is already in the mailbox.
A filter normally runs once, as mail arrives, so a rule written today does nothing about yesterday's mail.
With no filter named, every enabled filter runs.
proton mail settings filters apply [REF...]
proton mail settings filters apply
proton mail settings filters apply NewslettersCreate a filter.
Describe it with --if and the actions below, and Proton writes the Sieve. A condition reads FIELD [not] COMPARATOR VALUE:
field subject, sender, recipient, attachments comparator contains, is, starts, ends, matches
is wants the whole value; matches takes * and ? as wildcards. An attachments condition takes no value - it asks whether there is one.
--sieve takes a script you wrote yourself instead.
proton mail settings filters create
proton mail settings filters create --name Receipts --if "sender contains billing@" --label Receipts
proton mail settings filters create --name Big --sieve ./big.sieve| Flag | Description |
|---|---|
--disabled |
Create it without turning it on |
--if stringArray |
A condition matching mail must meet, as FIELD [not] COMPARATOR VALUE (repeatable) |
--into string |
Move matching mail into this folder (archive, inbox, spam, trash, or one of yours) |
--label stringArray |
Apply this label to matching mail (repeatable) |
--mark-read |
Mark matching mail as read |
--match string |
Whether every condition must hold, or any one of them: all, any (default all) |
--name string |
Name for the new filter |
--sieve string |
Sieve script (- reads stdin) |
--star |
Star matching mail |
Delete filters.
proton mail settings filters delete REF...
proton mail settings filters delete ReceiptsDisable filters.
proton mail settings filters disable REF...
proton mail settings filters disable ReceiptsEnable filters.
proton mail settings filters enable REF...
proton mail settings filters enable ReceiptsShow what a filter matches and does.
proton mail settings filters get REF
proton mail settings filters get ReceiptsList your filters.
proton mail settings filters list
proton mail settings filters list| Flag | Description |
|---|---|
--limit int |
How many filters per page; 0 for all of them |
--page int |
Which page of results, counting from zero |
Set the order filters run in.
The first rule to file a message wins, so the order decides where mail lands. Name the filters that should run first, in order; the rest keep the order they are in.
proton mail settings filters reorder REF...
proton mail settings filters reorder ReceiptsChange what a filter is called, matches, or does.
--if and the actions beside it replace the whole rule rather than adding to it. The filter keeps its place in the order, and stays enabled or disabled as it was.
proton mail settings filters update REF
proton mail settings filters update Receipts --sieve ./receipts.sieve| Flag | Description |
|---|---|
--if stringArray |
A condition matching mail must meet, as FIELD [not] COMPARATOR VALUE (repeatable) |
--into string |
Move matching mail into this folder (archive, inbox, spam, trash, or one of yours) |
--label stringArray |
Apply this label to matching mail (repeatable) |
--mark-read |
Mark matching mail as read |
--match string |
Whether every condition must hold, or any one of them: all, any (default all) |
--name string |
New name |
--sieve string |
New Sieve script (- reads stdin) |
--star |
Star matching mail |
Folders, which a message lives in.
Holds create, delete, list and update.
Create a folder.
proton mail settings folders create
proton mail settings folders create --name Receipts
proton mail settings folders create --name 2026 --parent Receipts --color olive
proton mail settings folders create --name Receipts --notify=false| Flag | Description |
|---|---|
--color string |
Accent color, by name (purple) or hex (#8080FF) (default #8080FF) |
--name string |
Name for the new folder |
--notify |
Tell you when mail arrives here (default true) |
--parent string |
Put it inside this folder, by ID |
Delete folders.
proton mail settings folders delete REF...
proton mail settings folders delete ReceiptsList your folders.
proton mail settings folders list
proton mail settings folders list| Flag | Description |
|---|---|
--limit int |
How many folders per page; 0 for all of them |
--page int |
Which page of results, counting from zero |
Rename or recolor a folder.
proton mail settings folders update REF
proton mail settings folders update Receipts --name Invoices
proton mail settings folders update Receipts --notify| Flag | Description |
|---|---|
--color string |
New accent color, by name (purple) or hex (#8080FF) |
--name string |
New name |
--notify |
Tell you when mail arrives here (default true) |
--parent string |
Move it inside this folder, by ID |
Mail forwarded to and from your addresses.
Outgoing is mail leaving one of your addresses for somebody else's; incoming is mail somebody else sends to you. A forwarding is named by the other party's address.
Holds accept, create, decline, delete, disable, enable, get, list and resend.
Accept forwardings sent to you.
REF is the forwarder's address, or the forwarding's ID. Only a pending forwarding to one of your addresses can be accepted.
Asks for your password even when you are signed in. With no terminal to ask, pass --password-file, which takes - for stdin.
proton mail settings forwarding accept REF...
proton mail settings forwarding accept jane@proton.me| Flag | Description |
|---|---|
--password-file string |
Read the account password from a file, or - for stdin |
--totp string |
Two-factor code |
Forward one of your addresses to another address.
REF is the address of yours mail arrives at, EMAIL is where it is handed to. Needs a paid Mail plan, and nothing is forwarded until they accept it: a Proton address in its Proton client or with forwarding accept, an address outside Proton by following the link Proton emails it.
To a Proton address, mail stays end-to-end encrypted. To an address outside Proton, end-to-end encryption for REF is turned off until the last such forwarding from it is deleted, and your password is asked for to turn it off. With no terminal to ask, pass --password-file, which takes - for stdin.
proton mail settings forwarding create REF EMAIL
proton mail settings forwarding create me@proton.me jane@proton.me
proton mail settings forwarding create me@proton.me jane@example.com| Flag | Description |
|---|---|
--password-file string |
Read the account password from a file, or - for stdin |
--totp string |
Two-factor code |
Decline forwardings sent to you.
REF is the forwarder's address, or the forwarding's ID. Only a pending forwarding to one of your addresses can be declined; the forwarder sees it as rejected.
proton mail settings forwarding decline REF...
proton mail settings forwarding decline jane@proton.meStop forwardings, in either direction.
REF is a forwarding in either direction. Taking down the last forwarding from one of your addresses to an address outside Proton turns end-to-end encryption for it back on, and asks for your password to do it. With no terminal to ask, pass --password-file, which takes - for stdin.
proton mail settings forwarding delete REF...
proton mail settings forwarding delete jane@proton.me| Flag | Description |
|---|---|
--password-file string |
Read the account password from a file, or - for stdin |
--totp string |
Two-factor code |
Pause forwardings without taking them down.
REF is a forwarding you set up that is active. Mail stops being forwarded, and resuming it needs nothing from the forwardee.
proton mail settings forwarding disable REF...
proton mail settings forwarding disable jane@proton.meResume paused forwardings.
REF is a forwarding you set up that is paused.
proton mail settings forwarding enable REF...
proton mail settings forwarding enable jane@proton.meShow one forwarding.
proton mail settings forwarding get REF
proton mail settings forwarding get jane@proton.meList forwardings in both directions.
A forwarding is pending until the forwardee accepts it, paused while the forwarder has it disabled, outdated once the forwarder's key changes, and rejected once the forwardee declines it.
proton mail settings forwarding list
proton mail settings forwarding list| Flag | Description |
|---|---|
--desc |
Reverse the order |
--limit int |
How many forwardings per page; 0 for all of them |
--page int |
Which page of results, counting from zero |
--sort string |
Order by: created, address (default created) |
Ask the forwardee again.
REF is a forwarding you set up that the forwardee declined, or that is outdated. They are offered it again, and it is pending until they accept. A forwarding to an address outside Proton gets its confirmation email sent again instead.
proton mail settings forwarding resend REF...
proton mail settings forwarding resend jane@proton.meShow the mail settings now in effect.
proton mail settings get
proton mail settings getLabels, which a message carries.
Holds create, delete, list and update.
Create a label.
proton mail settings labels create
proton mail settings labels create --name Work
proton mail settings labels create --name Accounting --color pacific| Flag | Description |
|---|---|
--color string |
Accent color, by name (purple) or hex (#8080FF) (default #8080FF) |
--name string |
Name for the new label |
Delete labels.
proton mail settings labels delete REF...
proton mail settings labels delete WorkList your labels.
proton mail settings labels list
proton mail settings labels list| Flag | Description |
|---|---|
--limit int |
How many labels per page; 0 for all of them |
--page int |
Which page of results, counting from zero |
Rename or recolor a label.
proton mail settings labels update REF
proton mail settings labels update Work --name Office
proton mail settings labels update Work --color enzian| Flag | Description |
|---|---|
--color string |
New accent color, by name (purple) or hex (#8080FF) |
--name string |
New name |
List the mail settings that can be changed.
proton mail settings list
proton mail settings listWho always reaches the inbox, and who never does.
Holds allow, block, list, remove and spam.
Always let someone reach the inbox.
A whole domain works too, written with the @: @example.com.
Deciding again about the same sender replaces the earlier decision rather than colliding with it.
proton mail settings senders allow EMAIL...
proton mail settings senders allow billing@example.comSend someone's mail straight to blocked.
A whole domain works too, written with the @: @example.com.
Deciding again about the same sender replaces the earlier decision rather than colliding with it.
proton mail settings senders block EMAIL...
proton mail settings senders block spammer@example.com
proton mail settings senders block @example.comList every standing decision about a sender.
proton mail settings senders list
proton mail settings senders list| Flag | Description |
|---|---|
--desc |
Reverse the order |
--limit int |
How many rules per page; 0 for all of them |
--page int |
Which page of results, counting from zero |
--sort string |
Order by: sender, since (default sender) |
Drop a standing decision, letting the spam filter decide again.
proton mail settings senders remove EMAIL...
proton mail settings senders remove billing@example.comSend someone's mail straight to spam.
A whole domain works too, written with the @: @example.com.
Deciding again about the same sender replaces the earlier decision rather than colliding with it.
proton mail settings senders spam EMAIL...
proton mail settings senders spam newsletter@example.comChange one mail setting.
proton mail settings set KEY VALUE
proton mail settings set pm-signature off
proton mail settings set view-mode conversationsTokens that let a device or a service send mail from your address.
A token sends from one custom domain address and nothing else. The address is the SMTP username and the token is the password, at smtp.protonmail.ch on port 587 with TLS.
The token is shown once, when it is made.
Holds create, delete, get and list.
Make a token for a device or a service to send with.
REF is one of your custom domain addresses, and --name is required. The token sends from that address and nothing else.
The token is shown once and never again. Under --output json it is the token field.
Asks for your password even when you are signed in. With no terminal to ask, pass --password-file, which takes - for stdin.
proton mail settings smtp-tokens create REF
proton mail settings smtp-tokens create billing@example.com --name 'Office printer'
proton mail settings smtp-tokens create billing@example.com --name 'Office printer' --output json| Flag | Description |
|---|---|
--name string |
Name for the new token |
--password-file string |
Read the account password from a file, or - for stdin |
--totp string |
Two-factor code |
Stop a token working, for good.
The device or the service holding it cannot send from then on. Nothing brings a token back; make another and set the device up again.
Asks for your password even when you are signed in. With no terminal to ask, pass --password-file, which takes - for stdin.
proton mail settings smtp-tokens delete REF...
proton mail settings smtp-tokens delete 'Office printer'| Flag | Description |
|---|---|
--password-file string |
Read the account password from a file, or - for stdin |
--totp string |
Two-factor code |
Show a token and where the device it is for connects.
The token itself is not here: it was shown once, when it was made. One you have lost is deleted and made again.
proton mail settings smtp-tokens get REF
proton mail settings smtp-tokens get 'Office printer'List the tokens on the account, newest first.
LAST USED is when something last sent with a token, and - where nothing ever has. The tokens themselves are never shown here.
proton mail settings smtp-tokens list
proton mail settings smtp-tokens list| Flag | Description |
|---|---|
--desc |
Reverse the order |
--limit int |
How many smtp tokens per page; 0 for all of them |
--page int |
Which page of results, counting from zero |
--sort string |
Order by: created, name, address, last-used (default created) |
Every command also takes the flags that work everywhere.