Outlook on the web renders very differently from the desktop client, and differently again from Gmail — spacing and positioning are where it bites. Paste your HTML below and we render it in a real, logged-in Outlook 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 Outlook.com session — never an engine approximation, so what you see is what the recipient gets.
margins and padding resolve differently from Gmail, so a layout tuned for one commonly needs adjusting for the other.
OWA has long-standing quirks around position and CSS transforms that shift elements out of place.
mail that lands in Junk renders with remote images blocked, which can silently change how the message looks.
Every route below renders in Outlook. 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": ["outlook"], 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 outlook.
An agent skill doc at /v1/skills.md — point your agent at it and it knows the whole workflow.
# Render this email in Outlook (Web) only curl -X POST https://api.powerline.ai/v1/jobs \ -H "Content-Type: application/json" \ -d '{ "html": "<html>…</html>", "subject": "Welcome aboard", "clients": ["outlook"] }' # -> { "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 →
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. Preview in Yahoo Mail →