← ClaudeAtlas

email-capture-and-deliverylisted

Capture email addresses that are real, store them deduplicated, and actually deliver mail. Use when building a waitlist, signup, contact or booking form; when transactional email "isn't arriving"; when signups produce duplicates or 500s; when a provider returns 403 on send; or when adding Resend/SES/Mailtrap to a project. Carries the verification ladder, Gmail dot/plus canonicalization and the unique-index rule it implies, the mandatory sender-domain configuration, the 403 diagnosis, and the behaviour contract that stops a form faking success.
hellokianben-collab/vishal-agarwal-context · ★ 0 · AI & Automation · score 60
Install: claude install-skill hellokianben-collab/vishal-agarwal-context
# Email capture and delivery that works Two independent problems that get conflated: **is this address real** and **did the mail arrive**. --- ## Part 1 — verification ladder, cheapest first Run in this order, stop at the first failure, and always return **why**: 1. **Syntax** — real parsing, not a regex found on the internet. 2. **Disposable / throwaway domain blocklist.** 3. **Typo catch** — `gmial.com`, `gmail.co`, `yaho.com`. Suggest the fix rather than rejecting silently; a suggestion converts, a rejection bounces the user. 4. **Live DNS: MX, then A/AAAA fallback.** A domain with no mail route cannot receive mail. Cache results — do not query per keystroke. 5. **Provider-specific rules** (see Gmail below). **Never do an SMTP-callback probe.** It is slow, unreliable, and gets you blocklisted. ## Part 2 — canonicalization, and the bug it caused Gmail treats `first.last@gmail.com`, `firstlast@gmail.com` and `firstlast+anything@gmail.com` as the **same mailbox**. So must you, or your "500 subscribers" is 300 people. ``` canonicalize(addr): lower-case if gmail/googlemail: strip dots from local part strip +tag from local part (all providers that support it) → email_key ``` **The real bug this caused:** a Gmail validator checked the **raw** local part — including the `+tag` — against `/^[a-z0-9.]+$/`. `+` fails that class, so **every genuine Gmail `+tag` signup was rejected** with "Gmail addresses only contain letters, numbers and dots" — in a file who