# Email providers: which providers coding agents choose

> Resend won about 36% of the runs, Postmark about 27%.

Source: https://armature.tech/leaderboards/mail (Armature agent leaderboards). 208 runs, 9 apps, 3 agents, 2 personas, updated 2026-09-01. Interactive board with every run: https://armature.tech/leaderboards#app/mail

## Key learnings

We asked three coding agents to add email sending to nine small apps. We ran it 208 times, changing the wording and changing who was asking. Four more providers took wins behind the top two, and one of them only led when the question changed.

### Cost and volume changed the order (21 of 24)

When the ask was about volume and cost at scale, Postmark won 21 of the 24 runs. On the plain ask and on procurement and compliance questions, Resend led both times.

### One agent put a different provider first (23 vs 20)

Claude Code picked Postmark 23 times and Resend 20 times. Cursor and Codex both put Resend first, each with 27 wins.

### The enterprise ask went somewhere else entirely (22 vs 21)

In the 44 runs asked as an enterprise team, the top two were split almost evenly between Azure Communication Services Email with 22 wins and Amazon SES with 21. Neither leader came first there. Senior engineers drove the overall result.

### Rewording the same ask moved the answer (12 of 27)

We counted 27 cases, each one codebase with one agent asked several times in different words. In 12 of them the runs did not all land on the same provider.

Smaller learnings:

- Mailgun came up 97 times in the agents' plans and won nothing.
- Generic SMTP won once, in a Java health records app built on Spring Boot and FHIR.
- The simulated user approved all 208 plans, pushed back in one run, and in that run refused until the agent named a specific provider.

## The ranking

| # | Product | Wins | Share |
|---|---|---:|---:|
| 1 | Resend (resend.com) | 74 | 36% |
| 2 | Postmark (postmarkapp.com) | 57 | 27% |
| 3 | Azure Communication Services Email (azure.microsoft.com) | 29 | 14% |
| 4 | Amazon SES (aws.amazon.com) | 24 | 12% |
| 5 | SendGrid (sendgrid.com) | 23 | 11% |
| 6 | Generic SMTP (nodemailer.com) | 1 | 0% |

## By agent

- Cursor (Grok 4.6): 72 runs, first Resend (27), then Postmark (16)
- Codex (GPT-5.6 Sol): 71 runs, first Resend (27), then Postmark (18)
- Claude Code (Claude Opus 5): 65 runs, first Postmark (23), then Resend (20)

## By persona

- Senior engineer: 164 runs, first Resend (74), then Postmark (57)
- Enterprise team: 44 runs, first Azure Communication Services Email (22), then Amazon SES (21)

## By what the ask stressed

- The plain ask: 103 runs, first Resend (38), then Postmark (22)
- Procurement and compliance: 60 runs, first Resend (34), then Postmark (14)
- Volume and cost at scale: 24 runs, first Postmark (21), then Resend (2)

A case is one codebase with one agent, asked several times in different words and as different people. 12 of 27 cases did not hold to a single choice.

## How this was measured

Every number on this page comes from a controlled experiment. We took 9 small applications, asked 3 coding agents (Cursor (Grok 4.6), Codex (GPT-5.6 Sol), Claude Code (Claude Opus 5)) to add email sending to each of them, in several wordings and as a senior engineer and enterprise team, and let the agent choose the product. Each run happened in a sandbox with the agent at a pinned version, and a judge read the session to record what was chosen. That is 208 runs. The interactive board shows every run with its session, its diff and the judge's verdict. A simulated user stood in for the owner of the codebase: it read the agent's plan and had to approve it before any code was written; it sent the agent back at least once in 1 runs.

Methodology and publications: https://armature.tech/publications

## Other sectors

- [Agent sandboxes](https://armature.tech/leaderboards/sandboxes) (https://armature.tech/leaderboards/sandboxes.md)
- [Observability](https://armature.tech/leaderboards/observability) (https://armature.tech/leaderboards/observability.md)
- [Payments](https://armature.tech/leaderboards/payments) (https://armature.tech/leaderboards/payments.md)
- [Deploy](https://armature.tech/leaderboards/deploy) (https://armature.tech/leaderboards/deploy.md)
- [Auth](https://armature.tech/leaderboards/auth) (https://armature.tech/leaderboards/auth.md)
- [Product analytics](https://armature.tech/leaderboards/product-analytics) (https://armature.tech/leaderboards/product-analytics.md)
- [Databases](https://armature.tech/leaderboards/databases) (https://armature.tech/leaderboards/databases.md)
- [File storage](https://armature.tech/leaderboards/storage) (https://armature.tech/leaderboards/storage.md)
- [LLM evals & observability](https://armature.tech/leaderboards/evals) (https://armature.tech/leaderboards/evals.md)
- [Voice Agents](https://armature.tech/leaderboards/voice-agents) (https://armature.tech/leaderboards/voice-agents.md)
- [Serverless functions](https://armature.tech/leaderboards/serverless) (https://armature.tech/leaderboards/serverless.md)
- [Cloud](https://armature.tech/leaderboards/cloud) (https://armature.tech/leaderboards/cloud.md)
- [AI gateway](https://armature.tech/leaderboards/ai-gateway) (https://armature.tech/leaderboards/ai-gateway.md)
- [Bot protection](https://armature.tech/leaderboards/bot-protection) (https://armature.tech/leaderboards/bot-protection.md)
- [Search](https://armature.tech/leaderboards/search) (https://armature.tech/leaderboards/search.md)
- [Agent frameworks](https://armature.tech/leaderboards/agent-frameworks) (https://armature.tech/leaderboards/agent-frameworks.md)
- [Performance in CI](https://armature.tech/leaderboards/perf-ci) (https://armature.tech/leaderboards/perf-ci.md)
