設定

メール

トランザクションメールの配信プロバイダーとテンプレートを設定します。

対応エディション

ObjectOS は、アプリケーションが必要とするとき(パスワードのリセット、招待、承認の通知)に、フレームワークのメールプラグインを通じてトランザクションメールを送ります。スケジュールされたレポートのメールはありません。ObjectStack 17.5 でスケジュールされたレポートの配信は削除され、代わりの機能はありません。プラグインには 3 つのトランスポートが付属しています。

トランスポート

プロバイダー使う場面必要な環境変数
logローカル開発。メールを送らずに標準出力にログとして出しますなし
resendResend による SaaS の到達性OS_EMAIL_API_KEY
postmarkPostmark による SaaS の到達性OS_EMAIL_API_KEY

デフォルトは log です。実際のプロバイダーが設定されていても API キーが指定されていない場合、ObjectOS は log トランスポートにフォールバックします。本番以外の環境が誤ってメールを送るのを防ぐのに役立ちます。

SMTP はどうか

ネイティブの SMTP トランスポートは、現在ランタイムに組み込まれていません。環境が SMTP を必要とする場合(企業のリレー、オンプレミスのメール、エアギャップのデプロイメント)は、本番に耐える 2 つの選択肢があります。

  1. ObjectOS の前段で SMTP から API へのリレーを実行します。 Resend、Postmark、そしてセルフホストの代替(Postal、Cuttlefish)はいずれも SMTP の受信を受け付け、HTTP API で再送信します。ObjectOS は通常どおり HTTPS でそれらと通信します。
  2. カスタムのメールプラグインとともにランタイムを実行します。 メールプラグインの API は小さく(send(message) 関数が 1 つ)、nodemailer をラップするプロジェクトのプラグインは requires リストで組み込めます。spec リポジトリのプラグイン作成ガイドを参照してください。

ネイティブの SMTP トランスポートはロードマップにあります。進捗は github.com/objectstack-ai/objectstack/issues で追跡してください。

環境変数

変数目的
OS_EMAIL_PROVIDERlog、resend、または postmark
OS_EMAIL_API_KEYプロバイダーの API キー(Resend または Postmark)
OS_EMAIL_FROMデフォルトの送信元アドレス。addr@x と Name <addr@x> の両方の形式をサポートします
OS_EMAIL_RETRIES送信失敗時のトランスポートの再試行回数(デフォルト 0)

環境変数は、成果物の email 設定ブロックの対応する値を上書きするので、運用者は成果物を再ビルドせずに配信先を変更できます。

テンプレート

再利用できるテンプレートは sys_email_template にあります。テンプレートは、フレームワークのテンプレートエンジンが評価する変数の埋め込みをサポートします。アプリケーションのコード(またはフロー)は、テンプレート ID と変数の束を指定してメールサービスを呼び出し、サービスが件名と本文を具体化して、設定されたトランスポートに渡します。

配信を確認する

Resend / Postmark では、送信ドメインがプロバイダーのダッシュボードで設定されていること(SPF、DKIM、必要に応じて DMARC)を確認します。エンドツーエンドで最も手早く確認するには、Setup のメール設定ページにある Send test email アクションを使います。稼働中のトランスポートを使い、トランスポートのエラーをその場に表示します。

運用のガイダンス

  • API キーはシークレットとして扱います。顧客のシークレットマネージャーに保存し、決して成果物には入れません。
  • トランスポートのエラーログを監視します。プロバイダーのレート制限、配信停止、バウンスはすべてそこに現れます。
  • 監査上重要なトランザクションメール(パスワードのリセット、MFA のチャレンジ)は、顧客のポリシーに従って保持します。保持期間はトランスポートではなく監査ログに設定してください。
  • 外向きのメールは業務トランザクションをブロックしません。送信の失敗はエラーとして表示されますが、元のレコード変更をロールバックすることはありません。