📧 メールサービスドライバー
メールサービスドライバーは、NodeBlocksアプリケーションでのメール送信のための統一されたインターフェースを提供します。メールプロバイダーの設定と操作を抽象化し、ビジネスロジックを変更することなく異なるメールサービスを使用できるようにします。
🎯 概要
NodeBlocksのメールサービスドライバーは、設定済みのメールサービスインスタンスを作成するファクトリ関数です。これらは以下を提供します:
- 異なるメールプロバイダー間の統一されたインターフェース
- APIキーおよび設定によるシンプルな設定
- カスタムメールプロバイダーのための柔軟な実装
📋 利用可能なメールサービスドライバー
SendGridドライバー
SendGridドライバーは、SendGrid APIを通じてメールを送信するための設定済みSendGridメールサービスを作成します。
getSendGridClient
APIキーとオプションのベースURL設定でSendGridメールサービスクライアントを作成します。
パラメータ:
apiKey: string
- 認証のためのSendGrid APIキーbaseUrl?: string
- SendGrid APIのオプションのベースURL(テスト/ステージングに有用)
戻り値: MailService
- sendMailメソッドを備えた設定済みメールサービス
使用法:
import { getSendGridClient } from '@nodeblocks/backend-sdk/drivers';
const mailService = getSendGridClient(process.env.SENDGRID_API_KEY);
カスタムベースURLを使用した例:
import { getSendGridClient } from '@nodeblocks/backend-sdk/drivers';
const mailService = getSendGridClient(
process.env.SENDGRID_API_KEY,
'https://api.sendgrid.com/v3'
);
setBaseUrl
カスタムエンドポイントまたはテストを有効にするためにSendGrid APIリクエストのベースURLを設定します。
パラメータ:
baseUrl: string
- SendGrid APIリクエストのベースURL(例: 'https://api.sendgrid.com/v3')
使用法:
import { setBaseUrl } from '@nodeblocks/backend-sdk/drivers';
// 本番SendGrid API URLを設定
setBaseUrl('https://api.sendgrid.com/v3');
// ステージング/テストURLを設定
setBaseUrl('https://api-staging.sendgrid.com/v3');
🔧 メールサービスドライバーの使用
直接使用
メール送信のためにメールサービスドライバーを直接使用します:
import { getSendGridClient } from '@nodeblocks/backend-sdk/drivers';
const mailService = getSendGridClient(process.env.SENDGRID_API_KEY);
// サービスを使用してメールを送信
const success = await mailService.sendMail({
to: 'identity@example.com',
from: 'noreply@company.com',
subject: 'Welcome!',
text: 'Welcome to our platform'
});
📧 メールインターフェース
Mail Dataインターフェース
MailData
インターフェースは、メールメッセージの構造を定義します。基本的なメールフィールドとコンテンツを必要とし、シンプルだが厳格な構造を持ちます:
// すべてのメールで必要なフィールド
interface RequiredMailData {
from: string; // 送信者メールアドレス
subject: string; // メール件名
to: string; // 受信者メールアドレス
}
// 完全なメールデータ - コンテンツが必要(HTMLまたはテキスト)
type MailData = RequiredMailData & ({ html: string } | { text: string });
インターフェースルール:
- 常に必須:
from
、subject
、to
フィールド - コンテンツ選択:
html
またはtext
コンテンツのいずれかを含む(両方は不可) - 単一受信者: メールごとに1人の受信者のみ
- 添付ファイルなし: ファイル添付はサポートされていません
使用例:
// ✅ 有効: HTMLメール
const htmlEmail: MailData = {
to: 'identity@example.com',
from: 'noreply@company.com',
subject: 'Welcome!',
html: '<h1>Welcome!</h1><p>Thank you for joining.</p>'
};
// ✅ 有効: テキストメール
const textEmail: MailData = {
to: 'identity@example.com',
from: 'noreply@company.com',
subject: 'Password Reset',
text: 'Your reset token: ABC123'
};
Mail Serviceインターフェース
MailService
インターフェースは、すべてのメールサービスドライバーの契約を定義します:
interface MailService {
sendMail(mailData: MailData): Promise<boolean>;
}
戻り値: Promise<boolean>
- メールが正常に送信された場合(ステータスコード202)はtrue
、それ以外の場合はfalse