Task ID: t214 | Status: open | Estimate: ~2h (ai:1.5h test:25m read:5m)
Assignee: @marcusquinn | Logged: 2026-02-10 | Started: 2026-02-10T04:28:20Z
Tags: plan email testing services
Subtasks
Notes
Local tier: Playwright screenshots across device viewports (webmail in Chrome/Firefox/WebKit), dark mode CSS validation (prefers-color-scheme), HTML/CSS email lint (caniemail.com compatibility rules), image validation (broken src, missing alt, oversized), link validation, accessibility (axe-core, table role=presentation, contrast ratio, lang attr, semantic headings). API tier: Email on Acid v5 REST API integration — create test (POST /v5/email/tests with HTML + client list), poll results (GET /v5/email/tests/{id}), fetch screenshots from 100+ real clients (Outlook Word engine, native iOS/Android apps, webmail dark mode). Support image_blocking mode. Include client frames overlay. Desktop tier: Apple Mail via AppleScript on macOS, Thunderbird automation.
Commands: preview (Playwright multi-device screenshots), lint (HTML/CSS email compatibility), accessibility (axe-core + email-specific WCAG checks), links (validate all hrefs), images (validate src URLs, alt text, file sizes), eoa (submit to Email on Acid API, poll results, download screenshots), eoa-clients (list available EOA clients), apple-mail (open in Apple Mail, screenshot on macOS). Config: EOA API key via aidevops secret, default client list, output directory for screenshots.
EOA spam API: 3 test methods (eoa — content-only from EOA servers, smtp — via your SMTP relay, seed — send to seed addresses for real filter testing). Spam clients: b2b (corporate filters) + b2c (consumer filters). Results: per-filter pass/fail with details. mail-tester.com automation: Playwright to get test address, guide user to send, scrape score + recommendations. Seed list management: reserve via API (GET /v5/spam/seedlist), reuse keys across tests.
Commands: spam (EOA spam test — eoa/smtp/seed methods), spam-results (fetch spam test results), mail-tester (automate mail-tester.com flow), seed-list (reserve/list EOA seed addresses). Integrates with email-health-check-helper.sh for pre-send DNS validation.
New checks to add (inspired by EOA but implemented locally): (1) Subject line analysis — length check (<50 chars for mobile), spam trigger word scan, emoji usage, personalization token detection. (2) HTML weight/size check — total email size, image-to-text ratio, HTML complexity score. (3) Unsubscribe header validation — List-Unsubscribe and List-Unsubscribe-Post headers present. (4) Plain text fallback — verify multipart/alternative with text/plain part. (5) Sender reputation lookup — integrate with existing blacklist check but add sender score services. (6) Domain age check — newly registered domains flag. (7) URL validation — check all links resolve, no redirects to suspicious domains, no URL shorteners in email body. (8) Image hosting validation — images hosted on reliable CDN, not local/temp URLs. Update email-health-check-helper.sh with new commands.
Add Email row to progressive disclosure table in AGENTS.md. Update subagent-index.toon with new email entries. Update marketing.md troubleshooting table to reference new agents instead of generic "test across email clients". Add email testing to content/distribution/email.md as pre-send checklist step.
Plan: Purpose
Add comprehensive email testing capabilities to aidevops, covering both visual rendering (design) and deliverability (spam filters, inbox placement). Inspired by Email on Acid's feature set, implemented as a hybrid: free local testing via Playwright + paid authoritative testing via EOA's v5 REST API. Also enhance the existing email-health-check with content-level pre-send checks that EOA's Campaign Precheck covers but we currently lack.
Plan: Decision Log
- 2026-02-10: Chose hybrid local+API approach over API-only. Rationale: Playwright gives instant free feedback during development; EOA API provides authoritative results for Outlook/native mobile that cannot be emulated locally. Best ROI = fast iteration locally, EOA for final pre-send validation.
- 2026-02-10: Named
email-design-test and email-delivery-test (not email-rendering or email-preview) to match the existing email-health-check naming pattern and clearly distinguish design (visual) from delivery (spam/inbox) concerns.
- 2026-02-10: Decided to enhance existing
email-health-check rather than create a separate agent for content-level checks. The health check already covers DNS/auth; adding subject line analysis, HTML weight, unsubscribe headers, and URL validation keeps all pre-send validation in one place.
- 2026-02-10: EOA API credentials stored via
aidevops secret set EOA_API_KEY and aidevops secret set EOA_API_PASSWORD. Never in config files or conversation.
Synced from TODO.md by issue-sync-helper.sh
Task ID:
t214| Status: open | Estimate:~2h (ai:1.5h test:25m read:5m)Assignee: @marcusquinn | Logged: 2026-02-10 | Started: 2026-02-10T04:28:20Z
Tags:
planemailtestingservicesSubtasks
Notes
Local tier: Playwright screenshots across device viewports (webmail in Chrome/Firefox/WebKit), dark mode CSS validation (prefers-color-scheme), HTML/CSS email lint (caniemail.com compatibility rules), image validation (broken src, missing alt, oversized), link validation, accessibility (axe-core, table role=presentation, contrast ratio, lang attr, semantic headings). API tier: Email on Acid v5 REST API integration — create test (POST /v5/email/tests with HTML + client list), poll results (GET /v5/email/tests/{id}), fetch screenshots from 100+ real clients (Outlook Word engine, native iOS/Android apps, webmail dark mode). Support image_blocking mode. Include client frames overlay. Desktop tier: Apple Mail via AppleScript on macOS, Thunderbird automation.
Commands: preview (Playwright multi-device screenshots), lint (HTML/CSS email compatibility), accessibility (axe-core + email-specific WCAG checks), links (validate all hrefs), images (validate src URLs, alt text, file sizes), eoa (submit to Email on Acid API, poll results, download screenshots), eoa-clients (list available EOA clients), apple-mail (open in Apple Mail, screenshot on macOS). Config: EOA API key via aidevops secret, default client list, output directory for screenshots.
EOA spam API: 3 test methods (eoa — content-only from EOA servers, smtp — via your SMTP relay, seed — send to seed addresses for real filter testing). Spam clients: b2b (corporate filters) + b2c (consumer filters). Results: per-filter pass/fail with details. mail-tester.com automation: Playwright to get test address, guide user to send, scrape score + recommendations. Seed list management: reserve via API (GET /v5/spam/seedlist), reuse keys across tests.
Commands: spam (EOA spam test — eoa/smtp/seed methods), spam-results (fetch spam test results), mail-tester (automate mail-tester.com flow), seed-list (reserve/list EOA seed addresses). Integrates with email-health-check-helper.sh for pre-send DNS validation.
New checks to add (inspired by EOA but implemented locally): (1) Subject line analysis — length check (<50 chars for mobile), spam trigger word scan, emoji usage, personalization token detection. (2) HTML weight/size check — total email size, image-to-text ratio, HTML complexity score. (3) Unsubscribe header validation — List-Unsubscribe and List-Unsubscribe-Post headers present. (4) Plain text fallback — verify multipart/alternative with text/plain part. (5) Sender reputation lookup — integrate with existing blacklist check but add sender score services. (6) Domain age check — newly registered domains flag. (7) URL validation — check all links resolve, no redirects to suspicious domains, no URL shorteners in email body. (8) Image hosting validation — images hosted on reliable CDN, not local/temp URLs. Update email-health-check-helper.sh with new commands.
Add Email row to progressive disclosure table in AGENTS.md. Update subagent-index.toon with new email entries. Update marketing.md troubleshooting table to reference new agents instead of generic "test across email clients". Add email testing to content/distribution/email.md as pre-send checklist step.
Plan: Purpose
Add comprehensive email testing capabilities to aidevops, covering both visual rendering (design) and deliverability (spam filters, inbox placement). Inspired by Email on Acid's feature set, implemented as a hybrid: free local testing via Playwright + paid authoritative testing via EOA's v5 REST API. Also enhance the existing email-health-check with content-level pre-send checks that EOA's Campaign Precheck covers but we currently lack.
Plan: Decision Log
email-design-testandemail-delivery-test(notemail-renderingoremail-preview) to match the existingemail-health-checknaming pattern and clearly distinguish design (visual) from delivery (spam/inbox) concerns.email-health-checkrather than create a separate agent for content-level checks. The health check already covers DNS/auth; adding subject line analysis, HTML weight, unsubscribe headers, and URL validation keeps all pre-send validation in one place.aidevops secret set EOA_API_KEYandaidevops secret set EOA_API_PASSWORD. Never in config files or conversation.Synced from TODO.md by issue-sync-helper.sh