カスタムメールプロバイダーを構成する
カスタムメールプロバイダを使用して、任意のメールプロバイダーをセットアップできます。デフォルトのメールプロバイダーでは非対応のメールプロバイダーにメッセージを送信するには、Actionsコードエディターを活用できます。また、メール配信プロセスを完全に制御することで、以下のようなユースケースに対応できます。
再試行の失敗
受信者の変更
メッセージペイロードの変更
Organization固有のロジックの作成
Auth0 Dashboardを使用して、カスタムメールプロバイダーを構成できます。
Auth0 Dashboardでカスタムメールプロバイダーを構成する
[Auth0 Dashboard]>[Branding(ブランディング)]>[Email Provider(メールプロバイダー)]に移動します。
[Use my own email provider(独自のメールプロバイダーを使用する)]を有効にします。
[Email Provider(メールプロバイダー)]セクションで、[Custom Provider(カスタムプロバイダー)]を選択します。
[From(差出人)]フィールドに、メールの送信元となるデフォルトのメールアドレスを入力します。
コードエディターで、カスタムメールプロバイダーにメッセージを送信するための適切なアクションコードを追加します。プロバイダーのAPIにメッセージを送信する方法については、プロバイダーのドキュメントを参照してください。他のアクションと同様に、Management APIを使用して、アクションとそのバージョンを管理します。
左側のメニューでキーをクリックして、APIでの認証に必要なシークレットを追加します。
左側のメニューでボックスをクリックして依存関係を追加します。

8. [Edit in Expanded Editor(拡張エディターで編集)]をクリックします。拡張エディターでは、シークレットや依存関係を追加したり、アクションをテストしたりできます。過去にデプロイされたアクションのバージョン履歴にアクセスすることもできます。custom-email-provider
アクションの書き方については、「custom-email-providerアクションの例」を参照してください。

9. アクションをデプロイするには、拡張エディターの右上にある[Deploy(デプロイ)]をクリックします。
10. 拡張エディターの左上にある[Back to Email Provider(メールプロバイダーに戻る)]をクリックします。[Provider Configuration(プロバイダーの構成)]セクションに緑のチェックマークと[Enabled(有効)]が表示されるはずです。
11. [Save(保存)]をクリックして、カスタムメールプロバイダーの構成を確定します。[Save(保存)]をクリックすると、アクションが自動的に保存されてデプロイされます。
12. 運用環境で使い始める前に、[Send Test Email(テストメールの送信)]をクリックして、カスタムメールプロバイダーをテストします。カスタムメールプロバイダーの構成を保存するまで、テストメールは送信できません。
アクションを削除する
アクションを削除するには、まず[Auth0 Dashboard]>[Branding(ブランディング)]>[Email Provider(メールプロバイダー)]で[Custom Email Provider(カスタムメールプロバイダー)]を無効にしてからアクションを削除することで、メール配信の失敗を防ぐことができます。
custom-email-providerアクションの例
以下のサンプルコードでは、メール通知の送信にトリガーされたonExecuteCustomEmailProvider
関数が2つの引数を取ります。
event
:ユーザーと通知のコンテキストに関する情報を含みます。詳細については、「アクショントリガー:custom-email-providerイベントオブジェクト」を参照してください。api
:通知送信中のカスタム動作にヘルパーメソッドを提供します。詳細については、「アクショントリガー:custom-email-provider API オブジェクト」を参照してください。
// Import necessary modules
const { request } = require('undici');
/**
* Handler to be executed while sending an email notification.
* @param {Event} event - Details about the user and the context in which they are logging in.
* @param {CustomEmailProviderAPI} api - Methods and utilities to help change the behavior of sending an email notification.
*/
exports.onExecuteCustomEmailProvider = async (event, api) => {
// Define the email payload
const emailPayload = {
from: {
name: "Test Sender",
email: "sender@example.com"
},
to: [{ email: event.user.email }],
subject: event.notification.message_type,
html: event.notification.html,
text: event.notification.text,
};
try {
// Make the API call to send the email
const { statusCode, body } = await request('https://api.example.com/send-email', {
method: 'POST',
headers: {
'Authorization': `Bearer ${event.secrets.api_key}`,
'Content-Type': 'application/json',
},
body: JSON.stringify(emailPayload),
});
if (statusCode === 200) {
console.log('Email sent successfully');
// Handle the body or discard it if not needed
// await res.body.json() || await res.body.dump()
} else if (statusCode >= 500) {
// Retry on server errors
api.notification.retry(
`Internal Server Error received from Messaging Proxy. Status code: ${statusCode}.`
);
return;
}
} catch (error) {
console.error(`Error sending email: ${error.message}`);
api.notification.drop(
`An unexpected error occurred. Error: ${error.message}`
);
}
return;
};
Was this helpful?
アクションの書き方やデプロイメントについては。「アクションを初めて作成する」をお読みください。