メインコンテンツまでスキップ
バージョン: 0.5.0 (最新)

📧 メールサービスドライバー

メールサービスドライバーは、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を設定します。

パラメータ:

使用法:

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 });

インターフェースルール:

  • 常に必須: fromsubjecttoフィールド
  • コンテンツ選択: 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