SMTP relay: SendGrid vs Amazon SES vs Mailgun
You need to send email at scale. Not through Outlook, not through your hosting provider’s built-in mail server that caps at 500 messages per day. You need an SMTP relay — a service that accepts your messages and delivers them through infrastructure built specifically for high-volume sending. Three names come up in every conversation: SendGrid, Amazon SES, Mailgun. Each solves the same fundamental problem. Each does it differently enough that picking the wrong one costs you months of migration later.
What SMTP relay does (and doesn’t do)
An SMTP relay sits between your application and the recipient’s mail server. Your app hands off a message — via SMTP protocol or HTTP API — and the relay handles delivery: queue management, retry logic, TLS negotiation, bounce processing, feedback loops with ISPs. You get deliverability infrastructure without building it yourself.
What a relay does not do: fix bad sending practices. If your list contains 30% dead addresses, the relay will dutifully attempt delivery on every single one, rack up bounces, and watch your sender reputation decline. The relay is a pipe. What you push through that pipe determines outcomes.
All three services — SendGrid, SES, Mailgun — provide SMTP endpoints and HTTP APIs. All three handle DKIM signing, bounce tracking, and suppression lists. The differences are in pricing models, operational complexity, and how much hand-holding you get.
SendGrid
Twilio SendGrid is the most recognizable name in the space. Over a hundred billion emails per month across their platform. They offer both a marketing product (drag-and-drop campaigns) and a transactional API. For SMTP relay purposes, the transactional side is what matters.
The free tier gives you 100 emails per day. The Essentials plan starts around $20/month for 50,000 emails. Pro plans go up from there, with dedicated IPs becoming available at higher tiers. Pricing is straightforward compared to SES, but not cheap at volume. Sending a million emails per month on SendGrid will cost you meaningfully more than the same volume on SES.
The dashboard is polished. Activity feed, bounce classification, link tracking, open tracking — all built in. Event webhook delivers real-time notifications about delivery status, opens, clicks, bounces, spam reports. The v3 API is clean and well-documented. SDKs exist for every major language.
Where SendGrid frustrates: support. At lower tiers, you get ticket- based support with no SLA on response time. Accounts get suspended without warning when their automated systems flag unusual sending patterns — and getting unsuspended can take days. This is the single most common complaint across forums and reviews. If you are ramping up sending volume quickly, expect friction.
Dedicated IPs require manual warmup. SendGrid provides guidance, but the process is on you. Skip it and your mail ends up in spam.
Amazon SES
Amazon Simple Email Service is the budget option — and “budget” here is not pejorative. At $0.10 per 1,000 emails (plus data transfer), SES is an order of magnitude cheaper than SendGrid at scale. A million emails per month costs roughly $100. On SendGrid that same volume runs several hundred dollars at minimum.
The tradeoff: SES is infrastructure, not a product. There is no dashboard in the traditional sense. Configuration happens through the AWS console or CLI. Bounce and complaint notifications come via SNS topics that you configure yourself. Want event tracking? Set up a configuration set, create an SNS topic or Kinesis Firehose, write the glue code. The documentation is extensive but assumes familiarity with the AWS ecosystem.
New SES accounts start in sandbox mode: you can only send to verified addresses. Moving to production requires a support request explaining your use case, estimated volume, and bounce handling strategy. AWS reviews it manually. Approval can take anywhere from hours to days. This gating is more rigorous than SendGrid or Mailgun, which is partly why SES shared IPs tend to have better aggregate reputation.
SES gives you dedicated IPs for a flat monthly fee ($24.95/IP/month as of 2026). They also offer a managed warmup pool feature that handles IP warmup automatically — a significant improvement over the manual process required by SendGrid and Mailgun.
If your team already lives in AWS, SES is a natural fit. IAM roles for authentication, CloudWatch for metrics, S3 for storing received mail. If your team does not live in AWS, the learning curve is steep.
Mailgun
Mailgun (now owned by Sinch) positions itself between the two: developer-friendly like SES, but with a product layer like SendGrid. Their free trial includes 5,000 emails for the first month, then pricing starts at $35/month for 50,000 emails. Pay-as-you-go is available at roughly $0.80 per 1,000 for lower volumes.
The API is arguably the best of the three for developers. Sending, receiving, validating, routing — everything is a clean REST call. Mailgun also provides email parsing (inbound routing), which neither SendGrid nor SES offer natively with the same simplicity.
Deliverability tools include an inbox placement testing feature (Inbox Placement) and seed list testing — useful, though both are add-ons with separate pricing. Logs are detailed and searchable. Event webhooks work similarly to SendGrid’s.
Mailgun’s weakness is scale pricing. At high volumes (millions of emails per month), the per-message cost stays relatively flat compared to SES’s rock-bottom rates. For a startup sending 100K emails/month, Mailgun is competitive. For an enterprise sending tens of millions, the math favors SES heavily.
Support at paid tiers is responsive. Dedicated IP warmup is semi-automated. The EU region (eu.mailgun.org) is available for GDPR compliance, which matters if you process European personal data.
Цены актуальны на начало 2026. Проверяйте текущие тарифы на сайтах сервисов.
Кто кому подходит
SendGrid — когда нужна рабочая инфраструктура без глубокого погружения в DevOps. Маркетинговые команды, SaaS- продукты на ранней стадии, компании без выделенного инженера по email. Подключили, настроили DNS-записи, отправляете. Минус: на объёмах свыше миллиона писем начинаете платить за удобство заметно больше, чем конкуренты берут за аналогичную пропускную способность.
Amazon SES — когда объёмы большие, бюджет ограничен, а в команде есть инженеры, знакомые с AWS. Финтех, e-commerce с миллионами транзакционных уведомлений, платформы с user-generated email. Стоимость на порядок ниже. Но всю обвязку — мониторинг, алерты, обработку bounce — строите сами.
Mailgun — когда важен баланс между удобством и контролем. Разработчики, которые ценят чистый API, но не хотят разворачивать SNS-топики и лямбды. Средние объёмы, необходимость inbound-парсинга, европейские данные. На больших масштабах уступает SES по цене, но экономит инженерные часы.
Что общего у всех трёх
Ни один из этих сервисов не решает проблему качества списка. SendGrid, SES и Mailgun — это транспорт. Они доставляют то, что вы им дали. Если в базе 20% невалидных адресов, relay послушно отправит все двадцать процентов, получит bounce, зафиксирует жалобы — и ваша репутация домена пойдёт вниз. При этом сам сервис может заблокировать ваш аккаунт за высокий bounce rate. SendGrid делает это автоматически. SES снижает sending quota. Mailgun присылает предупреждение, а потом приостанавливает отправку.
Механизм разный, результат один: грязная база ломает любой relay.
SMTP relay — это труба. Если в трубу заливать мусор, на выходе будет мусор. Качество списка определяет результат больше, чем выбор конкретного сервиса.
Подводные камни при переезде
Миграция между relay-сервисами выглядит простой на бумаге: поменять SMTP-хост и креденшелы. На практике — несколько ловушек.
Первое — IP-репутация. На старом сервисе вы наработали репутацию конкретного IP-адреса. На новом — начинаете с нуля. Если берёте dedicated IP, нужен warmup. Если остаётесь на shared — зависите от соседей по пулу.
Второе — suppression lists. У каждого сервиса свой список адресов, на которые он отказывается отправлять: hard bounce, жалобы, отписки. Эти списки не переносятся между платформами. Если вы перешли с SendGrid на Mailgun и не экспортировали suppression list, Mailgun попытается доставить письма на адреса, которые SendGrid уже пометил как мёртвые. Результат — всплеск bounce rate в первые дни после миграции.
Третье — DNS. DKIM-ключи привязаны к конкретному сервису. При переезде нужно сгенерировать новые ключи, добавить их в DNS, дождаться распространения. Если забыть убрать старые DKIM-записи, DMARC-проверка может давать неожиданные результаты.
Валидация как страховка
Перед подключением к любому из трёх сервисов стоит пропустить базу через валидатор. Не потому что так принято, а потому что это прямо влияет на стоимость отправки и на сохранность аккаунта.
На SES с его $0.10 за тысячу разница не кажется большой. Но SES жёстче всех реагирует на bounce rate: порог — 5%, после которого аккаунт уходит в review, а при повторных нарушениях — блокировка. На SendGrid автоматическая приостановка аккаунта при аномальном bounce rate может произойти посреди важной рассылки. На Mailgun предупреждение придёт, но к этому моменту репутация домена уже пострадала.
Проверка базы до отправки — самый дешёвый способ сохранить аккаунт в рабочем состоянии. Дешевле, чем разбираться с тикетами в поддержке SendGrid. Дешевле, чем поднимать sending quota в SES после блокировки. Дешевле, чем прогревать новый IP с нуля.
Практические рекомендации
Не привязывайтесь к одному relay. Архитектура, в которой смена транспорта требует переписывания половины кода, — уязвимая архитектура. Абстрагируйте слой отправки: интерфейс с методами send, get_status, handle_bounce. Под капотом — конкретный провайдер. Замена провайдера — замена одной реализации.
Мониторьте bounce rate в реальном времени. Все три сервиса предоставляют webhook-события. Подключите их к алертам. Если bounce rate после очередной рассылки превысил 2% — это сигнал остановиться и проверить сегмент, а не ждать, пока сервис заблокирует аккаунт.
Разделяйте потоки. Транзакционные письма (подтверждение заказа, сброс пароля) и маркетинговые рассылки должны идти с разных поддоменов и, в идеале, через разные IP. Если маркетинговая рассылка получит жалобы, это не должно затронуть доставляемость транзакционных писем. SendGrid и Mailgun поддерживают несколько доменов из коробки. На SES это настраивается через configuration sets.
И главное: валидируйте базу перед каждой крупной отправкой. Адреса умирают быстрее, чем кажется — 20-25% базы за год. Quarterly validation — минимум. Перед миграцией на новый relay — обязательно.
Перед подключением нового SMTP relay проверьте базу в uChecker — 30 бесплатных проверок, чтобы оценить реальное состояние списка.
