postfix_provider_playbook
Recovery playbooks for the big mailbox providers: Gmail / Google Workspace (421 4.7.28 rate limit, 5.7.26-5.7.32 SPF/DKIM/DMARC, PTR, TLS, reputation), Microsoft Outlook.com / Microsoft 365 (S3150 block list with SNDS/JMRP, 5.7.606-649…
Instructions
Recovery playbooks for the big mailbox providers: Gmail / Google Workspace (421 4.7.28 rate limit, 5.7.26-5.7.32 SPF/DKIM/DMARC, PTR, TLS, reputation), Microsoft Outlook.com / Microsoft 365 (S3150 block list with SNDS/JMRP, 5.7.606-649 banned IP, 5.7.511, 4.7.650, SC/DY/OU/RP codes, 5.7.515, 5.7.705-750) and Yahoo / AOL ([TSS04]/[TS*] deferrals, [TSS09], [BL21]/[BL23], 5.7.9). Each playbook says what the code means, whether Postfix will retry or retrying is pointless, ordered steps (Postfix-specific, e.g. a dedicated transport with destination_concurrency_limit = 1 for Gmail 4.7.28; never flush the queue at a throttling receiver), and the provider's official pages. Modes: with no arguments, scans the queue and the mail log (since, default 24h) and returns the playbooks for what is failing here with evidence counts and affected domains; with reply, looks up one pasted SMTP reply without reading the server; with id, returns one playbook. Read-only: it never contacts the providers or changes the queue.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | return this one playbook, e.g. gmail-4.7.28, microsoft-s3150, yahoo-deferred (see available) | |
| reply | No | one SMTP reply or delay reason to look up, as it appears in the log or postqueue (e.g. 'host gmail-smtp-in.l.google.com[...] said: 421-4.7.28 ...'); when set the queue and log are not read | |
| since | No | log window when scanning the server, e.g. 1h, 24h (default), 7d, or all | |
| domain | No | recipient domain of reply, used to recognise the provider when the reply names no host (e.g. outlook.com) | |
| provider | No | only this provider when scanning the server: gmail, microsoft or yahoo |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | server (queue and log were scanned), reply (one reply was looked up) or id (one playbook by id) | |
| lookup | No | mode reply: provider, code, whether Postfix retries, category, and the playbook (null if none applies) | |
| server | No | mode server: playbooks for what is failing, with evidence counts, codes seen and affected domains, most deliveries affected first | |
| playbook | No | mode id: the playbook | |
| available | No | every built-in playbook id; included when nothing matched |