Skip to content

t214: Email testing suite — design rendering + delivery testing + health check enhancements #889

@github-actions

Description

@github-actions

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

  • t214.1 Create services/email/email-design-test.md — local Playwright rendering + Email on Acid API integration ~15m ref:GH#890
  • t214.2 Create email-design-test-helper.sh — CLI for local + EOA API email design testing ~20m ref:GH#891
  • t214.3 Create services/email/email-delivery-test.md — spam filter testing + inbox placement ~15m ref:GH#892
  • t214.4 Create email-delivery-test-helper.sh — CLI for spam testing + inbox placement ~20m ref:GH#893
  • t214.5 Enhance email-health-check.md — add content-level checks inspired by EOA Campaign Precheck ~15m ref:GH#894
  • t214.6 Update AGENTS.md, subagent-index.toon, marketing.md cross-references ~10m ref:GH#895

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

Metadata

Metadata

Assignees

Labels

planAuto-created from TODO.md tagstatus:doneTask is complete

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions