Как отправлять письма из приложения — по шагам, без своего почтового сервера

Смотри, приятная новость: чтобы приложение слало письма (код подтверждения, «спасибо за заказ», сброс пароля), тебе НЕ нужен свой почтовый сервер и вечер мучений с SMTP. Причина простая: письма с самодельного сервера почти всегда падают в спам. Поэтому все давно шлют почту через готовый сервис — и это буквально один запрос. Пройдём по шагам.
Почему нельзя просто «отправить с сервера»
Сначала — зачем так. Ты мог бы поднять почтовый сервер сам. Но у отправителя есть репутация: почтовики (Gmail и прочие) не доверяют новым безымянным серверам и кидают их письма в спам или режут вовсе. Настроить доверие (SPF, DKIM, прогрев) — отдельная профессия.
Готовый сервис (Resend, Postmark, SendGrid, Mailgun) уже имеет эту репутацию и всю кухню взял на себя. Ты просто дёргаешь его API: «отправь вот это письмо вот сюда» — а доставку он берёт на себя. Дёшево (у большинства есть бесплатный тариф на тысячи писем) и надёжно.
Шаги
1. Выбери сервис и заведи аккаунт. Для старта бери Resend — у него самый дружелюбный вход и щедрый бесплатный тариф. Регистрация обычная, по почте.
2. Получи API-ключ. В панели сервиса найди раздел API Keys и создай ключ. Это длинная строка вида re_xxxxxxxx. Скопируй — она нужна, чтобы сервис понял, что письмо шлёшь именно ты.
3. Спрячь ключ, не суй его на фронтенд. Ключ — секрет. Он живёт только на бэкенде, в переменной окружения, и никогда в коде страницы. Подробнее — как безопасно хранить ключи. Бросишь на фронт — за минуту найдут и разошлют спам от твоего имени.
4. Подтверди отправителя. Сервис попросит доказать, что почта твоя. На старте хватит их тестового адреса (например, [email protected]). Для боевого — добавишь свой домен и подтвердишь его парой DNS-записей (сервис даёт готовые).
5. Позови API с бэкенда. Сама отправка — один запрос. На псевдокоде это выглядит так:
POST https://api.resend.com/emails
Заголовок: Authorization: Bearer ТВОЙ_КЛЮЧ
Тело (JSON):
{
"from": "[email protected]",
"to": "[email protected]",
"subject": "Спасибо за заказ!",
"html": "<p>Мы получили твой заказ 🎉</p>"
}
Четыре поля: от кого, кому, тема, тело. Тело — обычный HTML. Если вайб-кодишь, так и попроси агента: «отправь письмо через Resend API из бэкенда, ключ возьми из переменной окружения».
6. Проверь. Отправь письмо себе. Пришло — готово. Не пришло — загляни в логи сервиса (там видно, принял он письмо или отбил и почему) и проверь папку «Спам».
Что получится
Рабочая транзакционная почта: пользователь регистрируется — ему летит код; оформляет заказ — приходит подтверждение. Всё это на бесплатном тарифе, пока писем немного. Никаких своих серверов и настройки доставки.
Не перепутай два вида писем
Полезное различие. То, что мы сделали, — транзакционные письма: одно письмо в ответ на действие (регистрация, заказ, сброс пароля). Есть ещё рассылки — одно письмо на тысячи адресов сразу (новости, промо). Для рассылок берут другие инструменты и обязательно кнопку «отписаться». Начни с транзакционных — они нужны почти всем и проще.
Вопрос: это правда бесплатно?
На старте — да. У Resend, Mailgun и других есть бесплатный тариф на тысячи писем в месяц. Пока ты не рассылаешь десятки тысяч, платить не придётся. Точные лимиты смотри у сервиса — они меняются.
Вопрос: обязательно ли покупать домен?
Чтобы просто попробовать — нет, хватит тестового адреса сервиса. Но письма «от [email protected]» выглядят несерьёзно и чаще уходят в спам. Как дойдёт до боевого запуска — купи домен и подтверди его; доставляемость сразу вырастет.
Вопрос: почему моё письмо ушло в спам?
Три частые причины: не подтверждён домен-отправитель, письмо выглядит как реклама (одни ссылки и капс), или адрес совсем новый и без репутации. Начни с подтверждения домена — это чинит большинство случаев.
Короткие уроки-истории, симулятор агента и ежедневная практика — в нашем мобильном приложении. Бесплатно.





