メインコンテンツにスキップ

Casdoor 検証コード用メールプロバイダー: Brevo SMTP, Resend, SendGrid, ACS Email and SES

· 1分読む
Yang Luo
Casdoor Maintainer

Casdoor は、サインアップ検証コード、パスワードリセットリンク、マジックリンクを Email プロバイダー経由で送信します。Resend、SendGrid、Azure Communication Services (ACS) Email のネイティブ API タイプに加え、任意の SMTP リレー(独自サーバー、Google Workspace、Microsoft 365、Brevo、Amazon SES)で動作する Default SMTP タイプ、およびその他の HTTP API 向けの Custom HTTP Email タイプがあります。無料枠と短いセットアップ期間を望む場合は、Resend または Brevo から始めてください。既に AWS または Azure で運用している場合、SES または ACS を使用すれば請求を一箇所にまとめることができます。どの選択肢を選んでも、配信性のための作業は同じです:From アドレスと整合する SPF および DKIM を備えた送信ドメインが必要です。

オプションの概要​

無料枠と価格は、各ベンダーの公式価格ページで 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

ドキュメント内の Email providers overview には、同じタイプとそれぞれが使用するフィールドがリストされています。

SMTP: 独自サーバー、Google Workspace、Microsoft 365​

Default タイプは、ホスト、ポート、ユーザー名、パスワードを受け取ります。SSL mode が Auto の場合、ポート 465 では暗黙的 TLS を、他のポートでは STARTTLS を使用するため、以下に挙げるほぼすべてのリレーに対応できます。

独自サーバーを使用する場合、SPF、DKIM 署名、逆引き DNS、IP レピュテーションはすべてあなたの責任となります。Google は、送信 IP に対して有効な順引きおよび逆引き DNS(PTR)レコードを要求しています。

Google Workspace は、ポート 465 または 587 の smtp.gmail.com をサポートしており、完全な Workspace アドレスとアプリパスワードでのサインインが必要で、1日あたり 2,000 メッセージという制限があります。

新しいセットアップでは Microsoft 365 は避けるべきです。Casdoor の SMTP プロバイダーはユーザー名とパスワードでサインインするため、これは SMTP AUTH の Basic 認証になります。Microsoft は Exchange Online の SMTP AUTH 向け Basic 認証の廃止を発表しており、使用していないテナントではすでに SMTP AUTH が無効化されています。構築前に以下の発表で最新タイムラインを確認してください。

Brevo SMTP​

Brevo は標準的な SMTP リレーを通じてトランザクションメールを送信するため、Default タイプを使用します。多くのセットアップ問題は、Brevo SMTP ログインに起因します:

  • サーバーは smtp-relay.brevo.com で、ポートは 587、465、または 2525 です。ポート 465 は SSL が必要ですが、Auto モードで処理されます。
  • SMTP ログインは常にアカウントのメールアドレスとは限りません。アカウント作成時期によっては、ログインメールアドレスか、[ID]@smtp-brevo.com のような生成されたアドレスかのいずれかであり、これは Brevo の SMTP ページに表示されます。アカウントのメールアドレスを変更しても、SMTP ログインは変わりません。
  • パスワードは SMTP key であり、API keyではありません。

Casdoorでは、Type を Default に設定し、その値を Host、Port、Username および Password に入力します。スクリーンショットについては Brevo guide を参照してください。ドメインについて、Brevoは独自のTXT検証レコード、DKIMおよびDMARCを要求します。SPFは専用IPを使用する場合のみ必要です。

Resend​

Resend タイプには Secret key に API key と、検証済みドメイン上の From address のみが必要です。Host、Port および Username は空のままにしておきます。Casdoorは送信者を From name から Name <address> の形式でフォーマットするか、From name が空の場合は組織の表示名から使用します。

テスト前に知っておくべき2つの点があります。まず、共有の onboarding@resend.dev 送信者は、自分のResendアカウントのメールアドレスにのみ送信できます。他の受信者への送信は403エラーになります。次に、独自ドメインを検証するには、Resendが生成するSPFおよびDKIMレコードを追加する必要があります。Resendは評判を分離するためにサブドメインからの送信を推奨しています。無料プランは月間3,000通(1日100通まで)に対応し、Proプランは月間50,000通で月額$20から始まります。Resend guide を参照してください。

SendGrid​

SendGrid タイプはAPI keyを使用します。Host と Endpoint を空のままにすると、CasdoorはSendGridの標準的なsend APIを使用します。異なるエンドポイントが必要な場合のみ両方を入力してください。Casdoorは 202 Accepted 以外をすべて失敗として扱い、SendGridが返すエラーメッセージを表示します。これは送信者がまだ検証されていない場合に役立ちます。

SendGridの価格ページには、1日100通のメールを送信できる60日間の無料トライアルがあり、その後Essentialsプランは月額$19.95からとなります。自動セキュリティ機能付きのドメイン認証では、SPFとDKIM用のCNAME、およびDMARC用のTXTレコードが追加されます。SendGrid guide を参照してください。

ACS Email (Azure Communication Services)​

Azure ACS タイプは、リソースのエンドポイントを Host として、アクセスキーを Secret key として受け取ります。Casdoorはそのキーで各リクエストに署名します。Azureは azurecomm.net 配下で認証がすでに設定されたワンクリック管理サブドメインを提供しており、Microsoftは開発用にこれを使用し、カスタムドメイン(SPFおよびDKIMレコード付き)に切り替えて運用開始することを推奨しています。価格ページに無料ティアはありません。メールあたり$0.00025、転送MBあたり$0.00012です。Azure ACS guide を参照してください。

Amazon SES​

CasdoorにはSES APIタイプがないため、Default タイプでSES SMTPインターフェースを使用してください。ホストはリージョンのSMTPエンドポイントです(例:email-smtp.us-east-1.amazonaws.com)。SESはポート25、587または2587でのSTARTTLS、およびポート465または2465での暗黙的TLSを受け入れます。SMTPユーザー名とパスワードは、SESで生成するSMTP資格情報です。AWSアクセスキーではなく、リージョンごとに異なります。

新しいアカウントはSESサンドボックスで開始されます。メールは検証済みのアドレスのみに送信され、24時間あたり最大200件のメッセージ、秒あたり1件という制限があります。実際のユーザーがサインアップする前に本番環境へのアクセスを申請してください。SESは単価レートで送信メール1,000件あたり$0.10を請求し、最低料金はかかりません。

Custom HTTP Email​

ネイティブタイプのないサービス向けに、Custom HTTP Email はフォームまたはJSONボディとして fromAddress、fromName、toAddress(複数の受信者の場合は toAddresses)、subject および content を、定義したヘッダーとともに送信します。ターゲットAPIに合わせて各フィールドの名前を変更できます。CasdoorはHTTP 200のみを成功としてカウントするため、202 Accepted で応答するAPIはエラーとして表示されます。小さなアダプターを前面に配置することで解決できます。Send email through your own HTTP API を参照してください。

認証メールの配信性基本事項​

認証コードがスパムフォルダに届いては役に立ちません。重要なルールは以下の通りです:

  • SPF and DKIM. GoogleはGmailへのすべての送信者にSPFまたはDKIMの使用を要求します。1日5,000件を超えるメッセージの場合、両方に加え、DMARC(p=none ポリシーが許可されています)も要求されます。最初からこれら3つを設定してください。
  • Alignment. Fromヘッダー内のドメインは、SPFドメインまたはDKIMドメインと一致する必要があります。一致しない場合、DMARCは失敗します。これが各プロバイダーが送信元ドメインの検証を求める理由です。
  • A separate subdomain. YahooはIPまたはDKIMドメインによってトランザクショナルメールとマーケティングメールを分離することを推奨しており、Resendもサブドメインを推奨しています。auth.example.com のようなものを使用すれば、悪いニュースレターがパスワードリセットに影響を与えるのを防ぐことができます。
  • TLS and spam rate. GoogleはTLSを要求し、報告されたスパム率を0.3%未満、理想的には0.1%未満に保つことを求めています。
  • No unsubscribe header needed. GoogleのFAQによると、ワンクリック解約はマーケティングメールに適用され、パスワードリセットメッセージは除外されるトランザクショナルメールの例として挙げられています。
  • Simple content. Casdoorはすべての組み込みタイプに対してテンプレートを、プレーンテキスト部分なしの単一のHTMLボディとして送信します。HTMLを軽量に保ち、コードをプレーンテキストにし、ボタンの横にリンク全体をテキストとして表示してください(Casdoorの組み込みマジックリンクメールが行っているように)。リンク短縮サービスではなく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. conf/app.conf で origin を設定します。これがない場合、リクエストが localhost などのループバックホストから来ない限り、Casdoor はパスワードリセットメールからリセットリンクを省略し、マジックリンクの送信を拒否します。詳細については Sign in with a magic link を参照してください。

ローカル開発では、実際のアカウントの代わりに偽の SMTP サーバーを指すように Default プロバイダを設定してください。そのセットアップについては MailHog vs Mailpit を参照してください。

参考資料​