Обновлено 2026-10-08
Как подключить свой SMTP к Supabase Auth
В панели Supabase откройте Authentication, раздел Emails, вкладку SMTP Settings, включите Enable Custom SMTP и укажите Sender email на своём домене, Host smtp.bulko.io, Port number 587, логин и пароль Bulko. После этого подтверждения регистрации, magic link, приглашения и сброс пароля пойдут через этот сервер, а не через ограниченный встроенный отправщик.
Что указать в Supabase
| Поле | Значение |
|---|---|
| Enable Custom SMTP | Включено |
| Sender email | Адрес на вашем домене, например [email protected] |
| Sender name | Название приложения или компании |
| Host | smtp.bulko.io |
| Port number | 587 (подходят и 465, и 2525) |
| Minimum interval between emails | Значение по умолчанию или небольшое, например 60 секунд |
| Username | Логин Bulko, например smtp_xxxxxxxxxxxxxxxx |
| Password | Пароль SMTP из Dashboard > SMTP Access |
Настройка по шагам
- Купите пакет на странице Bulko SMTP Relay. Логин и пароль будут в Dashboard > SMTP Access и придут на почту после оплаты.
- Подтвердите домен отправки в Sending Domains и добавьте DKIM TXT-запись (селектор
bk1) и CNAMEbnc.yourdomain.com. Supabase рекомендует SPF, DKIM и DMARC для писем Auth, а подтверждение домена позволяет выровнять все три. - Откройте проект в панели Supabase и перейдите в Authentication. В разделе Emails (в боковом меню, блок Notifications) откройте вкладку SMTP Settings. В старых версиях панели этот блок был в Project Settings.
- Включите Enable Custom SMTP. В Sender email укажите адрес на подтверждённом домене, в Sender name название продукта.
- В настройках SMTP-провайдера введите Host
smtp.bulko.io, Port number587, Username и Password. Шифрование Supabase согласует сам, отдельного переключателя TLS нет. Порты 465 или 2525 используйте, только если 587 не подходит. - Проверьте Minimum interval between emails. Это минимальная пауза между запросами писем, защита от спама. Оставьте её небольшой (например, 60 секунд), чтобы пользователь мог быстро запросить новую ссылку.
- Нажмите Save. Затем откройте Authentication > Rate Limits: после включения своего SMTP Supabase ставит низкий лимит, 30 писем в час. Поднимите значение для отправки писем под ожидаемое число регистраций, не выходя за лимит Bulko в 2 000 писем в сутки на SMTP-аккаунт.
Текст писем меняется в Authentication > Emails > Templates. Шаблоны не зависят от SMTP-сервера, поэтому текущие шаблоны подтверждения и magic link продолжат работать. Если вы управляете проектами через код, те же настройки доступны в Supabase Management API (пример ниже).
Supabase Management API: настройка своего SMTP
# Set custom SMTP for a Supabase project via the Management API
# Get a personal access token at https://supabase.com/dashboard/account/tokens
export SUPABASE_ACCESS_TOKEN="your-access-token"
export PROJECT_REF="your-project-ref"
curl -X PATCH "https://api.supabase.com/v1/projects/$PROJECT_REF/config/auth" \
-H "Authorization: Bearer $SUPABASE_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"external_email_enabled": true,
"smtp_admin_email": "[email protected]",
"smtp_sender_name": "Your App",
"smtp_host": "smtp.bulko.io",
"smtp_port": "587",
"smtp_user": "smtp_xxxxxxxxxxxxxxxx",
"smtp_pass": "your-bulko-smtp-password"
}'
Проверка
Быстрее всего проверить через Authentication > Users > Add user > Send invitation на ящик, который вы читаете, или через регистрацию либо сброс пароля в приложении. Приглашение или письмо подтверждения должно прийти от вашего Sender email в течение минуты. Если письма нет, откройте логи Auth в панели (раздел Logs, Auth) и найдите SMTP-ошибку, например 535 при проблеме со входом или 554 5.7.1 при срабатывании фильтра. Откройте полученное письмо, посмотрите заголовки и убедитесь, что SPF и DKIM проходят.
Ошибки и решения
| Проблема | Решение |
|---|---|
| Error sending confirmation email или invite email | Supabase не смог отправить письмо через SMTP. Посмотрите точный ответ сервера в логах Auth и проверьте Host smtp.bulko.io, порт и учётные данные. |
| 535 Authentication failed в логах Auth | Неверный Username или Password. Вставьте их заново из Dashboard > SMTP Access: логин выглядит как smtp_xxxxxxxxxxxxxxxx, это не ваш Sender email. Другие причины: bulko.io/ru/smtp-errors/535/. |
| Ошибки подключения или TLS handshake | Сначала используйте порт 587. Если нужен другой, 465 работает с implicit TLS, 2525 со STARTTLS. Порт 25 для отправки не предоставляется. |
| email rate limit exceeded | Это лимит самого Supabase, а не SMTP-сервера. Поднимите лимит писем в Authentication > Rate Limits: после включения своего SMTP он стартует с 30 в час. |
| 554 5.7.1 message rejected | Контент-фильтр Bulko отклонил письмо. Проверьте, что в шаблонах нет вводящих в заблуждение ссылок или подделки бренда и ссылки ведут на ваш домен. |
| Письма подтверждения попадают в спам | Отправляйте с подтверждённого домена, разделите адреса From для Auth и маркетинга, как советует Supabase, и по возможности используйте свой домен для ссылок Auth. Проверьте SPF через SPF checker Bulko. |
Частые вопросы
Зачем Supabase свой SMTP?
Встроенный отправщик предназначен для тестов, сильно ограничен по частоте и отправляет только на адреса команды проекта. Рабочему приложению для регистраций, magic link и сброса пароля нужен собственный SMTP.
Какой порт указать в Supabase?
Стандартный выбор 587. Bulko также принимает 465 с implicit TLS и 2525 со STARTTLS.
Что значит Minimum interval between emails?
Это минимальное время между запросами писем, защита от спама и злоупотреблений. Часовой лимит объёма настраивается отдельно в Authentication > Rate Limits.
Можно ли слать маркетинговые письма через тот же SMTP?
Supabase Auth отправляет только письма авторизации. Тот же аккаунт Bulko можно использовать в бэкенде для другой почты, но Supabase советует разделять адреса From или домены для Auth и маркетинга.
Сколько это стоит?
Оплата по факту: $5 за 5 000 писем, $15 за 20 000, $30 за 50 000 или $60 за 150 000, разовый платёж, письма не сгорают. Лимит по умолчанию 2 000 писем в сутки на SMTP-аккаунт.
Получить SMTP-доступ для Supabase
Разовая оплата картой или криптой, без подписки. Неиспользованные письма не сгорают. Лимит 2 000 писем в сутки на один доступ.
Что можно отправлять: правила использования.