Email Provider for Casdoor Verification Codes: Brevo SMTP, Resend, SendGrid, ACS Email and SES
Casdoor надсилає коди підтвердження при реєстрації, посилання для скидання пароля та магічні посилання через провайдера електронної пошти. Він має нативні типи API для Resend, SendGrid та Azure Communication Services (ACS) Email, тип Default SMTP, який працює з будь-яким SMTP-ретранслятором (ваш власний сервер, Google Workspace, Microsoft 365, Brevo, Amazon SES), а також тип Custom HTTP Email для будь-якого іншого HTTP API. Якщо вам потрібен безкоштовний тариф і коротка настройка, почніть з Resend або Brevo. Якщо ви вже використовуєте AWS або Azure, SES або ACS дозволяють зберегти білінг в одному місці. Який би варіант ви не обрали, робота з доставкою залишається такою ж: відправник домен із SPF та DKIM, які узгоджуються з адресою From.
Огляд варіантів
Безкоштовні тарифи та ціни перевірено 2026-11-02 на власних сторінках цін кожного постачальника.
| Provider | API or SMTP | Free tier (checked 2026-11-02) | Sender domain setup | Casdoor type |
|---|---|---|---|---|
| Your own mail server | SMTP | You run it | You publish SPF, DKIM and DMARC, and need forward and reverse DNS for the IP | Default |
Google Workspace (smtp.gmail.com) | SMTP with an app password | Part of the Workspace subscription, 2,000 messages per day | Your Workspace domain | Default |
Microsoft 365 (smtp.office365.com) | SMTP AUTH | Part of the subscription | Your Microsoft 365 domain | Default |
| Brevo | SMTP relay (smtp-relay.brevo.com) | 300 emails per day | Brevo code (TXT), DKIM and DMARC records | Default |
| Resend | API | 3,000 emails per month, 100 per day | SPF and DKIM records generated by Resend, then DMARC | Resend |
| SendGrid | API | 60-day trial, 100 emails per day | Domain authentication: CNAME records for SPF and DKIM, TXT for DMARC | SendGrid |
| Azure Communication Services Email | API | None listed; $0.00025 per email plus $0.00012 per MB | Azure managed subdomain, or a custom domain with SPF and DKIM | Azure ACS |
| Amazon SES | SMTP interface | No SES-only quota; new AWS accounts get Free Tier credits that SES can use | Verified identity for every From address | Default |
| Any other HTTP API | HTTP | Depends on the service | Depends on the service | Custom HTTP Email |
У розділі Огляд провайдерів електронної пошти документації перелічено ті самі типи та поля, які вони використовують.
SMTP: ваш власний сервер, Google Workspace, Microsoft 365
Тип Default приймає host, port, username і password. Режим SSL mode Auto використовує неявний TLS на порту 465 та STARTTLS на інших портах, що охоплює майже всі ретранслятори нижче.
З вашим власним сервером SPF, підпис DKIM, зворотний DNS та репутація IP лежать виключно на вас. Google вимагає дійсних прямих і зворотних записів DNS (PTR) для IP-адреси відправника.
Google Workspace документує smtp.gmail.com на порту 465 або 587, вхід здійснюється з повною адресою Workspace та паролем додатка, з обмеженням 2,000 повідомлень на день.
Microsoft 365 — це той, якого варто уникати для нових установок. Провайдер SMTP Casdoor виконує вхід за допомогою username і password, що є базовою автентифікацією (Basic authentication) для SMTP AUTH. Microsoft оголосила плани щодо відмови від базової автентифікації для SMTP AUTH в Exchange Online і вже вимкнула SMTP AUTH у тих орендарях (tenants), де він не використовувався. Перевірте останню інформацію про терміни в оголошенні нижче, перед тим як будувати на цьому рішення.
Brevo SMTP
Brevo надсилає транзакційну пошту через стандартний SMTP-ретранслятор, тому використовує тип Default. Більшість проблем з налаштуваннями пов'язані з входом до SMTP Brevo:
- Сервер —
smtp-relay.brevo.com, на порту 587, 465 або 2525. Порт 465 потребує SSL, що обробляє режимAuto. - Логін для SMTP не завжди збігається з адресою вашого акаунта. Залежно від того, коли був створений акаунт, це або ваша адреса для входу, або згенерована адреса вигляду
[ID]@smtp-brevo.com, і вона відображається на сторінці SMTP у Brevo. Зміна адреси електронної пошти вашого акаунта не змінює цей логін. - Пароль — це SMTP key, а не API key.
У Casdoor встановіть Type як Default і введіть ці значення у поля Host, Port, Username та Password. У посібнику Brevo є скріншоти. Для домену Brevo вимагає власний запис TXT для верифікації, DKIM та DMARC; SPF потрібен лише з виділеною IP-адресою.
Resend
Тип Resend потребує лише API key у полі Secret key, а також From address на верифікованому домені. Залиште поля Host, Port та Username порожніми. Casdoor формує відправника як Name <address> з поля From name, або з відображуваного імені організації, якщо поле From name порожнє.
Дві речі, які варто знати перед тестуванням. По-перше, спільний відправник onboarding@resend.dev може надсилати листи лише на електронну адресу вашого власного облікового запису Resend; будь-який інший одержувач отримає помилку 403. По-друге, верифікація власного домену означає додавання записів SPF та DKIM, згенерованих Resend, а Resend рекомендує надсилати листи з піддомену, щоб зберегти репутацію окремо. Безкоштовний план покриває 3 000 листів на місяць з обмеженням 100 на день; план Pro починається з $20 на місяць за 50 000 листів. Див. посібник Resend.
SendGrid
Тип SendGrid використовує API key. Залиште поля Host та Endpoint порожніми, і Casdoor використовуватиме стандартний API надсилання SendGrid; заповніть обидва лише якщо вам потрібен інший endpoint. Casdoor вважає будь-яку відповідь, крім 202 Accepted, помилкою та показує повідомлення про помилки, повернуті SendGrid, що допомагає, коли відправник ще не верифікований.
На сторінці цін SendGrid зазначено 60-денний безкоштовний пробний період з 100 листами на день, після чого доступний план Essentials від $19.95 на місяць. Автентифікація домену з автоматизованим захистом додає CNAME для SPF та DKIM і запис TXT для DMARC. Див. посібник SendGrid.
ACS Email (Azure Communication Services)
Тип Azure ACS приймає кінцеву точку ресурсу як Host та ключ доступу як Secret key; Casdoor підписує кожен запит цим ключем. Azure надає вам керований піддомен azurecomm.net в один клік із вже налаштованою автентифікацією, і Microsoft рекомендує використовувати його для розробки та перейти на власний домен із записами SPF та DKIM для запуску. На сторінці цін немає безкоштовного тарифу: $0.00025 за лист плюс $0.00012 за МБ переданих даних. Див. посібник Azure ACS.
Amazon SES
Casdoor не має типу API для SES, тому використовуйте SMTP-інтерфейс SES із типом Default. Хост — це SMTP-кінцева точка регіону, наприклад email-smtp.us-east-1.amazonaws.com; SES приймає STARTTLS на портах 25, 587 або 2587 та неявний TLS на портах 465 або 2465. Ім'я користувача та пароль SMTP — це облікові дані SMTP, які ви генеруєте в SES. Це не ваші ключі доступу AWS, і вони різняться для кожного регіону.
Нові облікові записи починають роботу в пісочниці SES: листи надсилаються лише на верифіковані адреси, максимум 200 повідомлень на 24 години та одне повідомлення на секунду. Запитайте доступ до продуктивного середовища перед тим, як реальні користувачі почнуть реєструватися. SES стягує $0.10 за кожні 1 000 вихідних листів за ставкою pay-as-you-go, без мінімальної плати.
Custom HTTP Email
Для сервісу без нативного типу, Custom HTTP Email надсилає fromAddress, fromName, toAddress (або toAddresses для кількох одержувачів), subject та content як form-data або JSON body з заголовками, які ви визначаєте. Ви можете перейменувати кожне поле, щоб воно відповідало цільовому API. Casdoor вважає успіхом лише HTTP 200, тому API, який відповідає 202 Accepted, буде показаний як помилка; невеликий адаптер на вході виправить це. Див. Надсилання електронної пошти через власний HTTP API.
Основи доставляності для автентифікаційних листів
Коди підтвердження марні, якщо вони потрапляють у спам. Важливі правила:
- SPF та DKIM. Google вимагає, щоб кожен відправник на Gmail використовував SPF або DKIM. При понад 5 000 повідомлень на день він вимагає обох, а також DMARC (політика
p=noneприймається). Налаштуйте всі три з самого початку. - Вирівнювання (Alignment). Домен у заголовку From повинен збігатися з доменом SPF або доменом DKIM, інакше DMARC завершиться невдачею. Саме тому кожен провайдер змушує вас верифікувати домен, з якого ви надсилаєте листи.
- Окремий піддомен. Yahoo рекомендує розділяти транзакційні листи та маркетингові листи за IP-адресою або доменом DKIM, а Resend рекомендує використовувати піддомени. Щось на кшталт
auth.example.comзапобігає тому, щоб погана розсилка новин впливала на скидання пароля. - TLS та рівень спаму. Google вимагає TLS і просить тримати повідомлений рівень спаму нижче 0.3%, бажано нижче 0.1%.
- Не потрібен заголовок відписки. FAQ Google стверджує, що однотискова відписка застосовується до маркетингових листів, і називає повідомлення про скидання пароля прикладом транзакційних листів, які виключені.
- Простий контент. Casdoor надсилає шаблон як один HTML body без окремої текстової частини для всіх вбудованих типів. Тримайте HTML легким, розміщуйте код простим текстом і показуйте повне посилання як текст поруч із кнопкою, як це робить вбудований email із магічним посиланням Casdoor. Використовуйте безпосередньо origin Casdoor, а не скорочувач посилань, щоб домен посилання збігався з вашим брендом.
Налаштування та тестування провайдера в Casdoor
- Перейдіть до Identity > Providers, додайте провайдера, встановіть Category як
Emailі оберіть Type з таблиці вище. - Встановіть From address і, за бажанням, From name.
- Write Email title and Email content. The content can use
%sfor the code,%{user.friendlyName}for the user's name, and%linkinside a<reset-link>block for the password reset link. Magic link emails use%linkand%expireTime; if your content has no%link, Casdoor sends its own magic link email instead. The templates section has examples. Codes and magic links expire afterverificationCodeTimeoutinconf/app.conf, which defaults to 10 minutes and matches the default template text; if you change the timeout, change the wording in your template too. - Натисніть Test SMTP Connection, щоб відкрити з'єднання без надсилання (лише для типів SMTP), потім введіть адресу в Test Email і натисніть Send Testing Email. Тест використовує значення з форми, збережені чи ні, з
%s, заміненим на123456, та видаленим блоком посилання на скидання. - Додайте провайдера до додатка з правилом, наприклад
Signup,Forget Password,Magic linkабоAll. Для різних правил можна використовувати різних провайдерів. Дивіться Add providers to an application. - Встановіть
originуconf/app.conf. Без нього, якщо запит не надходить із локального хоста, такого якlocalhost, Casdoor не включає посилання для скидання в електронні листи про скидання пароля та відмовляється надсилати магічні посилання. Дивіться Sign in with a magic link.
Для локальної розробки спрямовуйте провайдера Default на фейковий SMTP-сервер замість реального облікового запису; MailHog vs Mailpit охоплює це налаштування.
Посилання
- Код Casdoor:
email/provider.go,object/email.go - Ціни Resend та помилка 403 resend.dev
- Ціни Twilio SendGrid Email API та автентифікація домену
- Ціни Brevo та Надсилання транзакційних електронних листів через SMTP Brevo
- Ціни Azure Communication Services та домен електронної пошти й автентифікація відправника
- Ціни Amazon SES, SMTP-кінцеві точки SES та вихід із пісочниці
- Рекомендації Google щодо відправників електронної пошти та FAQ
- Найкращі практики Yahoo для відправників
- Google Workspace: надсилання електронної пошти з принтера, сканера або програми
- Оновлена шкала припинення підтримки базової автентифікації SMTP AUTH Exchange Online