Yahoo Mail is the one people skip — and the one that most often surprises them, because its inbox sorts mail before the recipient ever opens it. Paste your HTML below and we render it in a real, logged-in Yahoo Mail account — then screenshot exactly what a recipient sees.
…or drop a .eml file onto the box, or .
Rendered in Blink, in a real logged-in Yahoo Mail session — never an engine approximation, so what you see is what the recipient gets.
mail is sorted across All / Primary / Offers / Social / Newsletters, so your message may not appear where the recipient looks first.
support sits between Gmail and Outlook, so it is not safe to assume passing both covers Yahoo.
free accounts interleave ads with real mail, changing how a message reads in the list.
Every route below renders in Yahoo Mail. Drop the clients field and you get every live client instead.
Use the box above. Nothing to install, and the preview opens as soon as the render finishes.
POST to /v1/jobs with "clients": ["yahoo"], then poll for the screenshot. Works from any language.
A hosted endpoint at /v1/mcp. Point Claude Code, Claude Desktop or Cursor at it and call submit_preview with yahoo.
An agent skill doc at /v1/skills.md — point your agent at it and it knows the whole workflow.
# Render this email in Yahoo Mail (Web) only curl -X POST https://api.powerline.ai/v1/jobs \ -H "Content-Type: application/json" \ -d '{ "html": "<html>…</html>", "subject": "Welcome aboard", "clients": ["yahoo"] }' # -> { "job_id": "j_…", "poll_url": "/v1/jobs/j_…" } # poll that until status is "completed", then read results.renders[]
Each client strips different CSS. The same HTML can look right in one and break in another, so it is worth checking the rest.
Gmail is the strictest of the major clients, and the one most likely to break a design that looked fine in the browser. Preview in Gmail →
Outlook on the web renders very differently from the desktop client, and differently again from Gmail — spacing and positioning are where it bites. Preview in Outlook →