Incident guide · Mail
Exim, Postfix, and Dovecot cheat sheet
Investigate mail queues, routing, configuration, delivery history, authentication sessions, and mailbox state.50explained commands4practical sections100%concrete examples
20
Exim queue, routing, and logs
Inspect queue age, sender and recipient filters, routing, retry rules, message content, and delivery history.
List all messages currently in the Exim mail queueexim -bpRead-only
Count messages currently in the Exim queueexim -bpcRead-only
List frozen Exim message identifiersexiqgrep -z -iRead-only
Count queued Exim recipients by destination domainexim -bp | exiqsumm | sort -nrk 1,1 | head -20Read-only
List frozen Exim messages older than one dayexiqgrep -z -o 86400 -iRead-only
Trace Exim address routing without sending mailexim -bt user@example.comRead-only
Inspect the headers of a queued Exim messageexim -Mvh <message-id>Read-only
Inspect the body of a queued Exim messageexim -Mvb <message-id>Read-only
Follow the Exim service logjournalctl -u exim4 -fRead-only
Force an immediate delivery attempt for one Exim messageexim -M <message-id>caution
Find all Exim messages sent from an email addressawk -v sender=<sender-email> '$4=="<=" && $5==sender' <exim-log-file>Read-only
Find all Exim delivery events sent to an email addressawk -v recipient=<recipient-email> '($4=="=>" || $4=="==" || $4=="**") && $5==recipient' <exim-log-file>Read-only
Find Exim messages sent from one address to anotherawk -v sender=<sender-email> -v recipient=<recipient-email> '$4=="<=" && $5==sender {seen[$3]=1} ($4=="=>" || $4=="==" || $4=="**") && $5==recipient && seen[$3] {print}' <exim-log-file>Read-only
Show the complete Exim log trace for a message IDexigrep <exim-message-id> <exim-log-file>Read-only
List queued Exim message IDs from one senderexiqgrep -f <sender-regular-expression> -iRead-only
List queued Exim message IDs for one recipientexiqgrep -r <recipient-regular-expression> -iRead-only
List Exim message IDs queued for more than one dayexiqgrep -o <age-in-seconds> -iRead-only
List non-frozen Exim message IDsexiqgrep -x -iRead-only
Print one effective Exim configuration optionexim -bP <configuration-option>caution
Show the Exim retry rule selected for an address or domainexim -brt <email-address-or-domain>Read-only
15
Postfix queue, maps, and configuration
Inspect queue state, delivery logs, effective configuration, lookup maps, and held messages.
List the Postfix mail queuepostqueue -pRead-only
Count Postfix queue entries by queue namepostqueue -j | jq -r '.queue_name' | sort | uniq -c | sort -nrRead-only
Show non-default Postfix configurationpostconf -nRead-only
Find all Postfix messages sent from an email addressawk -v sender=<sender-email> 'index($0, "from=<" sender ">")' <postfix-log-file>Read-only
Find all Postfix deliveries sent to an email addressawk -v recipient=<recipient-email> 'index($0, "to=<" recipient ">")' <postfix-log-file>Read-only
Show every Postfix log line for a queue IDgrep -F <postfix-queue-id> <postfix-log-file>Read-only
Request immediate delivery of queued Postfix mailpostqueue -fcaution
Find Postfix messages sent from one address to anotherawk -v sender=<sender-email> -v recipient=<recipient-email> 'index($0,"from=<" sender ">"){id=$6; sub(/:$/,"",id); seen[id]=1} index($0,"to=<" recipient ">"){id=$6; sub(/:$/,"",id); if(seen[id]) print}' <postfix-log-file>Read-only
Export the Postfix queue as JSON linespostqueue -j | head -5Read-only
List effective Postfix master.cf servicespostconf -MRead-only
Show the default value of one Postfix parameterpostconf -d <postfix-parameter>Read-only
Print only the effective value of one Postfix parameterpostconf -h <postfix-parameter>Read-only
Query a Postfix lookup table without modifying itpostmap -q <lookup-key> <postfix-map>Read-only
Place one Postfix queued message on holdpostsuper -h <postfix-queue-id>caution
Release one held Postfix messagepostsuper -H <postfix-queue-id>caution
14
Dovecot users, mailboxes, and services
Inspect active sessions, user databases, authentication, quota, mailbox state, service capacity, logs, and metrics.
List authenticated Dovecot sessionsdoveadm whoRead-only
Inspect Dovecot user database fieldsdoveadm user user@example.comRead-only
Show Dovecot mailbox status for a userdoveadm mailbox status -u user@example.com 'messages unseen recent vsize' INBOXRead-only
List users currently connected to Dovecotdoveadm whoRead-only
Show active Dovecot sessions for one userdoveadm who <dovecot-user>Read-only
Show recent errors reported by the running Dovecot serverdoveadm log errorsRead-only
Find every log destination used by Dovecotdoveadm log findRead-only
Inspect Dovecot user database fields for an accountdoveadm user <dovecot-user>Read-only
Print Dovecot settings changed from their defaultsdovecot -ncaution
Show Dovecot service process and capacity statusdoveadm service statusRead-only
Inspect Dovecot authentication fields for one userdoveadm auth lookup <dovecot-user>Read-only
Summarize messages, unseen mail, and size for every mailboxdoveadm mailbox status -u <dovecot-user> 'messages unseen vsize' '*'Read-only
Show current Dovecot quota usage for one userdoveadm quota get -u <dovecot-user>Read-only
Dump current Dovecot server metricsdoveadm stats dumpRead-only
01
Common mail queue baseline
Use the Sendmail-compatible queue view when the active MTA is not yet known.