# Email Sender Fix Desk: agent fixes for one-click unsubscribe, footers and SPF, DKIM and DMARC, checked against the original, owner approved

> Let an agent put the one-click unsubscribe headers, a visible unsubscribe link and your postal address into your newsletters, and propose clean SPF, DKIM and DMARC records, the things Gmail, Yahoo and Outlook ask senders for. It writes fixed copies and never sends or touches DNS. A fix check refuses deleted words, made-up addresses, tracking pixels and hidden links. A records check refuses dropped senders, invented keys and DMARC jumped straight to reject. You approve at your terminal and make the change yourself.

- URL: https://paperchasewebb.ai/bots/marketplace/items/email-sender-fix-desk-one-click-unsubscribe-spf-dkim-dmarc-owner-approved/
- Type: Prompt pack
- Category: Solo business
- By: PaperChaseWebb
- Works with: Claude Code, Codex, Grok Bot, Hermes (named in the listing); Plain Markdown files, a small Python checker, and rules for AGENTS.md and CLAUDE.md, Claude Code and Codex notes, Hermes notes and a Grok Bot standing order. The agent files were checked by the checker on Linux; they were not loaded inside each agent for this release
- Price: $29 USD
- Difficulty: Intermediate
- Setup time: 45 min
- Time to result: The worked example in 5 minutes; your newsletter and records checked and fixed in about an hour
- Format: Markdown (.md) file, email-sender-fix-desk-one-click-unsubscribe-spf-dkim-dmarc-owner-approved.md
- Version: 1.0, updated 2026-11-01
- License: Use inside your own business or for your clients. Do not resell or republish the kit itself.

## What you end up with

Your newsletters carry a working one-click unsubscribe, a visible unsubscribe link and your address in every part, and your domain has one clean SPF record, DKIM for each sender and DMARC with reports, one approved change at a time, with nothing deleted and no claim that anything is compliant.

## What you get

- 21 sections and an appendix in one .md file, with a one-line unpack for all 53 files
- email_check.py scan: 18 checks for missing one-click unsubscribe headers, hidden or missing unsubscribe links, a missing postal address, From addresses that break DMARC alignment, fake Re: subjects and misleading links
- email_check.py fix: 14 checks that compare the agent's copy with the original, so fixing by deleting words, inventing an address, hiding a link or adding a tracking pixel fails
- email_check.py dns and dnsfix: 14 checks on your SPF, DKIM and DMARC records and 12 on the agent's proposal, so dropping a sender, adding an unknown one, inventing a DKIM key or jumping DMARC to reject fails
- A claims check that stops reports saying an email is compliant, will reach the inbox, or that the agent changed DNS
- The owner step: approve.py needs a real terminal and part of the file hash, refuses agent sessions and piped input, and checks the original has not changed since the fix
- A 6-email eval set with DNS records, rules and two skills for Grok Bot, Claude Code, Codex and Hermes, six prompts and four templates
- The test harness: 81 unit tests and 630 planted faults you can repeat

## Who it is for

Businesses, creators and agencies sending newsletters from their own domain who want an agent to fix the unsubscribe headers, footers and sender records, with a person approving every change.

## Tools needed

- Python 3.8 or newer: runs the email scan, the fix check, the DNS and DNS proposal checks, the report check, the rules and settings checks and the owner approval script; standard library only
- Grok Bot, Claude Code, Codex or Hermes: writes fixed copies of your saved emails and a proposed set of DNS records under the AGENTS.md rules or the Grok Bot standing order; never sends email, never changes DNS and never approves
- A test send saved as .eml and an export of your DNS records: saved into site/messages and site/dns.txt; the kit never logs in to your sending tool or DNS provider
- You need: Python 3.8 or newer
- You need: A test send of your newsletter saved as .eml
- You need: An export of your domain's DNS records
- You need: Your postal address and the list of tools that send as your domain
- You need: Someone who approves each fix and makes the change

Cost to run: The kit is the only purchase. Everything runs locally with Python; the checker makes no network calls, logs in to nothing, sends no email and changes no DNS.

## How it works

1. **Unpack and test.** Save the kit as pack.md in an empty folder, run the unpack line from Appendix A, then sh test_all.sh. Expected: 53 files written; 81 tests OK; 630 of 630 planted faults caught.
2. **Watch the flow.** Run sh example/run_example.sh and read it next to section 17. Expected: A pottery studio's newsletter with 4 high findings and records with 6, an agent's first tries caught, the second tries clean, a first-try report with 5 findings and a piped approval refused.
3. **Put in your sending.** Fill in site/sender.json from the template, save a test send into site/messages and your DNS export as site/dns.txt, then run python3 desk/email_check.py site. Expected: No findings, or a short list of settings to fix first.
4. **Fix one newsletter and the records.** Run email_check.py scan site/messages and email_check.py dns site/dns.txt, have your agent follow skills/message-fix and skills/dns-fix, then email_check.py fix queue/fixes and email_check.py dnsfix queue/fixes/dns.txt. Expected: A fixed copy and proposed records in queue/fixes with 0 high findings, and a report listing what is left for you and what to check by hand.

## Sample prompt: First pass (Grok Bot, Claude Code, Codex, Hermes)

```
Follow skills/message-fix for site/messages/[file]. Do not send anything. List the codes fixed and the codes left for me, with the reason for each.
```

Prompt 1 of 6.

## Sample prompt: Propose the records (Grok Bot, Claude Code, Codex, Hermes)

```
Follow skills/dns-fix. Propose queue/fixes/dns.txt from site/dns.txt and sender.json. Do not change DNS. For each change, tell me which record to edit at my provider.
```

Prompt 2 of 6.

## Sample prompt: List the senders (Grok Bot, Claude Code, Codex, Hermes)

```
List every sending tool you can find in site/dns.txt and in the headers and links of site/messages, and whether it is in sender.json. Do not edit sender.json.
```

Prompt 4 of 6.

## Free preview of email-sender-fix-desk-one-click-unsubscribe-spf-dkim-dmarc-owner-approved.md

````markdown
# Email Sender Fix Desk: agent fixes for one-click unsubscribe, footers and SPF, DKIM and DMARC, checked against the original, owner approved

Version 1.0, 2026-11-01. By PaperChaseWebb. For small businesses, creators, marketing teams and agencies who want an AI agent to fix the unsubscribe headers, footers and sender records behind their newsletters, without deleting content, inventing an address or a DKIM key, dropping a sender from SPF, jumping DMARC to reject or claiming anything is compliant. Works with Grok Bot, Claude Code, Codex and Hermes. Python 3.8 or newer, standard library only, no API keys, no logins. The kit and the agent never send email and never change DNS. Tested with 81 unit tests and 630 planted faults on Linux with Python 3.13, 3.12, 3.11, 3.9 and 3.8. All business, email and DNS data in this kit is made up. Not legal advice.

Since February 2024, Gmail and Yahoo ask anyone sending marketing mail in volume for three things: SPF, DKIM and DMARC on the sending domain, a one-click unsubscribe in the headers, and a visible unsubscribe link in the body. Since May 5, 2025, Outlook.com rejects high-volume mail without SPF, DKIM and DMARC. CAN-SPAM has asked for a real postal address and a working opt-out since 2003.

Most small senders are close. The newsletter tool adds List-Unsubscribe but not the one-click header. The footer address lives in the HTML part and not the plain text one. Someone added a second sending tool and a second SPF record, which breaks bo
````

## Test record

- Date: Nov 1, 2026
- What was run: tests/test_scan.py (23), test_fix.py (21), test_dns.py (12), test_modes.py (11), test_approve.py (9, on a real pseudo terminal) and test_mini.py (5); tests/mutate.py with 534 planted faults across email problems, bad fixes, DNS records, DNS proposals, reports, agent rules, settings, the eval set and approve.py, plus 96 against email_mini.py; email_check.py set on the 6-email eval set; example/run_example.sh end to end; and the unpack line with test_all.sh. Linux, Python 3.13, 3.12, 3.11, 3.9 and 3.8.
- Result: 81 passed, 0 failed on all five versions; 630 of 630 planted faults caught and 7 of 7 clean baselines clean; the eval set had 0 findings; the example caught the first-try email fix with 4 high findings, the first-try records with 5 and the first-try report with 5, and refused piped approval; the unpack line wrote every file and test_all.sh passed there.
- Not run: A live Grok Bot, Claude Code, Codex or Hermes session. Real sends, inboxes and spam filters. Live DNS lookups. Sending tool settings. Non-English emails. macOS or Windows. Legal review.

Copied from this item's dated test notes. What was not run stays in.

## Worth knowing

- The agent rules were checked by the checker but not loaded inside a live Grok Bot, Claude Code, Codex or Hermes session for this release. The eval fixes were written by hand to the rules. Give your agent the entrance exam in section 15 before you rely on it.
- Not legal advice. Nothing in the kit says an email or domain meets any law, and no check here says where an email will land. Spam complaint rates are read in Google Postmaster Tools and Yahoo's Sender Hub.
- The checker reads the emails and records you export. It does not send mail, look up DNS, follow SPF includes or count nested lookups, and it does not read settings inside your sending tool.
- The owner step assumes the agent cannot run approve.py at a terminal. Run it as a separate user; agent rules alone are not a hard boundary.
- All businesses, emails and records in the kit are made up. English only. Tested on Linux only; macOS and Windows were not tested.
- On 2026-11-01 on Linux: 81 unit tests and 630 of 630 planted faults passed on Python 3.13, 3.12, 3.11, 3.9 and 3.8; the 6-email eval set was clean; the unpack line wrote every file and test_all.sh passed in that folder.

## Questions

**Which agents does it work with?** Any agent that can read files and run a script. The kit has rules for AGENTS.md and CLAUDE.md, Claude Code and Codex notes, Hermes notes and a Grok Bot standing order. Those were checked by the checker, not loaded in each agent for this release.

**Will it send email or change my DNS?** No. The agent writes fixed copies and proposed records into a queue folder. You approve each one at a terminal and make the change in your sending tool and at your DNS provider yourself.

**Will my emails reach the inbox?** No tool can promise that, and this kit will not say it. It fixes the parts a sender controls that Gmail, Yahoo and Outlook ask for, records what was done and lists what a person still has to check.

**What if I send through more than one tool?** List each one in sender.json with its SPF include and DKIM selectors. The records check makes sure none is dropped and no unknown one is added, and a DKIM key always comes from the tool, never from the agent.

**Can you set it up for us?** Yes. Our Install sprint sets up your sender list, eval set and agent, or Managed Ops runs the scans, fixes and record proposals for you each month. Book a call or write to mgmt@paperchasewebb.com.

## How to buy

$29 one time at https://paperchasewebb.ai/bots/marketplace/items/email-sender-fix-desk-one-click-unsubscribe-spf-dkim-dmarc-owner-approved/. Stripe checkout, then an instant download page; the download link is also in your emailed receipt.

Seller: PaperChaseWebb Inc., mgmt@paperchasewebb.com
