Перейти до основного вмісту

Email Provider for Casdoor Verification Codes: Brevo SMTP, Resend, SendGrid, ACS Email and SES

· Читання за 10 хв
Yang Luo
Casdoor Maintainer

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 на власних сторінках цін кожного постачальника.

ProviderAPI or SMTPFree tier (checked 2026-11-02)Sender domain setupCasdoor type
Your own mail serverSMTPYou run itYou publish SPF, DKIM and DMARC, and need forward and reverse DNS for the IPDefault
Google Workspace (smtp.gmail.com)SMTP with an app passwordPart of the Workspace subscription, 2,000 messages per dayYour Workspace domainDefault
Microsoft 365 (smtp.office365.com)SMTP AUTHPart of the subscriptionYour Microsoft 365 domainDefault
BrevoSMTP relay (smtp-relay.brevo.com)300 emails per dayBrevo code (TXT), DKIM and DMARC recordsDefault
ResendAPI3,000 emails per month, 100 per daySPF and DKIM records generated by Resend, then DMARCResend
SendGridAPI60-day trial, 100 emails per dayDomain authentication: CNAME records for SPF and DKIM, TXT for DMARCSendGrid
Azure Communication Services EmailAPINone listed; $0.00025 per email plus $0.00012 per MBAzure managed subdomain, or a custom domain with SPF and DKIMAzure ACS
Amazon SESSMTP interfaceNo SES-only quota; new AWS accounts get Free Tier credits that SES can useVerified identity for every From addressDefault
Any other HTTP APIHTTPDepends on the serviceDepends on the serviceCustom 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​

  1. Перейдіть до Identity > Providers, додайте провайдера, встановіть Category як Email і оберіть Type з таблиці вище.
  2. Встановіть From address і, за бажанням, From name.
  3. Write Email title and Email content. The content can use %s for the code, %{user.friendlyName} for the user's name, and %link inside a <reset-link> block for the password reset link. Magic link emails use %link and %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 after verificationCodeTimeout in conf/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.
  4. Натисніть Test SMTP Connection, щоб відкрити з'єднання без надсилання (лише для типів SMTP), потім введіть адресу в Test Email і натисніть Send Testing Email. Тест використовує значення з форми, збережені чи ні, з %s, заміненим на 123456, та видаленим блоком посилання на скидання.
  5. Додайте провайдера до додатка з правилом, наприклад Signup, Forget Password, Magic link або All. Для різних правил можна використовувати різних провайдерів. Дивіться Add providers to an application.
  6. Встановіть origin у conf/app.conf. Без нього, якщо запит не надходить із локального хоста, такого як localhost, Casdoor не включає посилання для скидання в електронні листи про скидання пароля та відмовляється надсилати магічні посилання. Дивіться Sign in with a magic link.

Для локальної розробки спрямовуйте провайдера Default на фейковий SMTP-сервер замість реального облікового запису; MailHog vs Mailpit охоплює це налаштування.

Посилання​