APIによるメール送信
顧客にメールを送信する別の方法として、メールAPI (opens in a new tab) も使用できます。
前提条件
NTT CPaaS でメールを送信するには、ドメインが NTT CPaaS システムで アクティブ である必要があります。 NTT CPaaS アカウントの (opens in a new tab) ユーザープロファイル でメールドメインを確認します。
電子メール メッセージの送信
1 つの宛先への単純な 1 つのメッセージの送信や、1 つの API 要求で多数の受信者へのパーソナライズされたメッセージのバッチ送信など、電子メール メッセージを送信するには、 電子メール メッセージの送信 (opens in a new tab) API を使用します。
フル機能のメール
フル機能のメールは、1つ以上の宛先アドレスに、添付ファイル付きの1つ以上のメールメッセージを送信する時に使用します。詳細については、フル機能のメールの送信 (opens in a new tab)に関するリファレンスドキュメントをご参照ください。
複数の受信者にメールを送信する
リクエストに複数のto
パラメータを含めることで、同じメールを複数の受信者アドレスに送信します。
複数の添付ファイルを含むメールを送信する
複数の添付ファイルを含むメールを送信するには、リクエストに複数の添付ファイルパラメーターを追加します。
複数の To、Cc、Bcc 受信者に電子メールを送信する
リクエストに複数の to
、cc
、bcc
パラメーターを含めることで、同じメールを複数の受信者アドレスに送信できます。
curl -s --user user:password \
https://./3/send \
-F from='Jane Smith ' \
-F to='john.smith@somedomain.com' \
-F to='jane.smith@somedomain.com' \
-F cc='juliet.smith@somedomain.com' \
-F cc='abram.smith@somedomain.com' \
-F bcc='joy.smith@somedomain.com' \
-F bcc='clare.smith@somedomain.com' \
-F subject='Mail subject text' \
-F text='Mail body text' \
--form-string html='Html bodyRich HTML message body.' \
-F attachment=@files/image1.jpg
パーソナライズされたメールをテンプレートを使って送信
リクエストの to
パラメーター内にプレースホルダー値を追加して、パーソナライズされたメールを送信します。事前に定義されたテンプレートを使ってメッセージを送信する場合は、テンプレート識別子の値を templateId
パラメーターに渡します。テンプレートを管理するには、NTT CPaaSのWebインターフェイスに ログイン (opens in a new tab)します。
IP プール ID を含む電子メールの送信
IP プールを選択すると、すべての部門が同じ送信ドメインを使用している場合でも、部門固有の IP プールを介して電子メールを送信できます。このアプローチは、配信品質、運用、およびコンプライアンス上の利点を提供します。
複数の部門が IP プールを共有する場合、送信レピュテーションも共有されます。1 つの部門の送信プラクティスがその評判を損なうと、他のすべての部門に影響を与える可能性があります。各部門を独自の IP プールに割り当てることで、個々のレピュテーションを分離して保護できます。
送信に特定の IP プールを使用するには、 電子メール メッセージの送信 (opens in a new tab) API への要求に ipPoolId
パラメーターを含めます。
カスタムmessageIDでメールを送信
リクエストのto
パラメーター内に一意のmessageId
を含めることで、カスタムのmessageId
を含むメールを送信します。
動的コンテンツを含むメールの送信
動的コンテンツを含む E メールを送信するには、次の 2 つの方法がサポートされています。
- テンプレート言語 (推奨)
- API 要求で
templateLanguageVersion=2
を使用します。 - 置換、ロジック、および式のより強力な構文を許可します。
- API 要求で
- 従来のハンドルバーヘルパー
- API 要求で
templateLanguageVersion
を設定しないでください。 - 下位互換性のために引き続きサポートされています。
- API 要求で
完全な API リファレンスについては、「 フル機能のメール (opens in a new tab) API エンドポイントを送信する」を参照してください。
これら 2 つのアプローチの詳細については、以下のセクションを参照してください。
テンプレート言語
動的コンテンツ を含む E メールを送信するには、HTML コンテンツ内で テンプレート言語 を使用し、リクエストの to
または default パラメーターにプレースホルダー値を定義します。
使用可能なテンプレート言語コンストラクトを追加して、置換、条件ステートメント、またはイテレーションをメールテンプレートに直接処理できます。
詳細については、テンプレート言語を参照してください。
レガシーハンドルバーヘルパー
レガシーヘルパーは、おなじみの {{#helper}} ...{{/helper}}
構文を使用します。これらは引き続きサポートされていますが、将来を見据えたプロジェクトのために、新しいテンプレート言語に移行することをお勧めします。
MIME 形式を使用したメールの送信
API 経由で MIME (多目的インターネットメール拡張機能) 形式の電子メールを送信できます。MIME を使用して E メールコンテンツを送信すると、E メールの構成と送信の柔軟性が高まります。例えば:
- 柔軟なメッセージフォーマット
- インライン画像、HTML、添付ファイル
MIME 形式のコンテンツを含む E メールを送信するには、 MIME E メール送信 (opens in a new tab) API のリファレンス ドキュメントを参照してください。
メール配信レポート
[電子メール配信レポート (opens in a new tab)] 方法では、送信されたすべての電子メールの 1 回限りの配信レポート (DLR) を取得できます。E メール配信レポートは、送信されたすべての E メールのパフォーマンスに関する詳細情報と指標を提供します。レポートの数に制限を設定したり、特定のメッセージやキャンペーンをターゲットに設定したりできます。
配信レポートは、フェールオーバーロジックの作成や、配信パフォーマンスが最適でない場合のトラフィックの速度低下など、ワークフローを最適化できる重要な分析情報を提供します。
配信レポートは一度だけ返されます。追加の配信レポートリクエストは、空のコレクションを返します。
以下に、メール配信レポートの取得例を示します。
メッセージIDによるレポートの取得
特定のメッセージを指定するには、messageId
パラメーターを使用します。
例えば:
GET /email/4/reports?messageId=
最初の2つの配信レポートの取得
limit
パラメータを使用して、レポートの最大数を定義します。
例えば:
GET /email/4/reports?limit=2 HTTP/1.1
一括IDによるレポートの取得
一意のレポートをリクエストしたい時は、bulkId
パラメーターを使用します。
例えば
GET /email/4/reports?bulkId=lrzkq6gatdkxouhrkgni HTTP/1.1
メールメッセージログ
[ 電子メール ログの取得 (opens in a new tab) ] メソッドを使用すると、電子メール メッセージのログを取得できます。この要求では、どのクエリ パラメーターも必須ではありません。パラメーターの任意の組み合わせを使用して、結果をフィルター処理できます。以下にいくつかの例を示します。
メールログは、過去48時間分のみ利用できます。
応答形式
成功した場合、応答ヘッダーの HTTP ステータスコードは 200 OK
になり、メッセージログが返されます。
承認せずにメッセージを送信しようとすると、HTTP ステータスコード 401 Unauthorized
の応答が返されます。
このメソッドを短期間に何度も使用すると、429 Too Many Requests
ステータスコードが表示されます。これにより、レポートがより適切な場合にログを誤用するのを防ぐことができます。
複数のメッセージIDフィルターによるログの取得
フィールド from
、to
および limit
は、応答メッセージログをフィルタリングするために使用する1つのパラメーターを受け入れます。
日付範囲と一般的なステータスフィルターによるログの取得
フィールド sentSince
とgeneralStatus
は、応答メッセージログをフィルタリングするために使用する1つのパラメーターを受け入れます。
一括IDによるログの取得
このメソッドを使用するには、メッセージログをフィルタリングするメールの応答で返されるbulkId
を使用します。
通知の追跡
トラッキング通知は、受信者がメールをどのように操作しているかを監視するのに役立ちます。エンゲージメントと配信品質に関する貴重な洞察を、特定のイベントについて通知することで提供します。
- 開封 - 受信者がメールを開いたときにトリガーされます。
- クリック - 受信者がメール内のURLをクリックしたときにトリガーされます。
- 登録解除 - 受信者がそれ以降の電子メールの受信をオプトアウトしたときにトリガーされます。
- 苦情 - 受信者がメールをスパムとしてマークするか、プロバイダーに報告したときにトリガーされます。
- 遅延バウンス - 受信者のサーバーによって最初に受け入れられた E メールが後で配信に失敗した場合にトリガーされます。
trackingUrl
を渡すと、Infobip はこれらの通知をシステムに送り返します。通知ペイロードにはイベントに関する構造化データが含まれているため、自動的に処理して、レポート、分析、または抑制ワークフローにフィードできます。
次のセクションでは、開封数、クリック数、登録解除数、苦情、遅延バウンスの通知ペイロードの例を示します。
開封通知
{
"notificationType": "OPENED",
"eventId": "8d2f8781-91fc-4473-9b0a-b12b51fafbe6",
"domain": "some-domain.com",
"recipient": "john.doe@some-domain.com",
"sendDateTime": 1704106800000,
"messageId": "14b734recsf69n8zkao5",
"bulkId": "ikzzmbhu6223bxkhmyrj",
"callbackData": "Callback data",
"recipientInfo": {
"deviceType": "Phone",
"os": "iOS 12",
"deviceName": "Apple"
},
"geoLocation": {
"countryName": "Los Angeles",
"city": "United States"
},
"entityId": "promotional-traffic-entity",
"applicationId": "marketing-automation-application",
"campaignReferenceId": "campaign-reference-123"
}
クリック通知
{
"notificationType": "CLICKED",
"eventId": "8d2f8781-91fc-4473-9b0a-b12b51fafbe6",
"domain": "some-domain.com",
"recipient": "john.doe@some-domain.com",
"url": "https://www.somelink.com",
"sendDateTime": 1704106800000,
"messageId": "14b734recsf69n8zkao5",
"bulkId": "ikzzmbhu6223bxkhmyrj",
"callbackData": "Callback data",
"recipientInfo": {
"deviceType": "Phone",
"os": "iOS 12",
"deviceName": "Apple"
},
"geoLocation": {
"countryName": "Los Angeles",
"city": "United States"
},
"entityId": "promotional-traffic-entity",
"applicationId": "marketing-automation-application",
"campaignReferenceId": "campaign-reference-123"
}
配信停止通知
{
"notificationType": "UNSUBSCRIBED",
"eventId": "8d2f8781-91fc-4473-9b0a-b12b51fafbe6",
"domain": "some-domain.com",
"recipient": "john.doe@some-domain.com",
"sendDateTime": 1704106800000,
"messageId": "14b734recsf69n8zkao5",
"bulkId": "ikzzmbhu6223bxkhmyrj",
"callbackData": "Callback data",
"recipientInfo": {
"deviceType": "Phone",
"os": "iOS 12",
"deviceName": "Apple"
},
"geoLocation": {
"countryName": "Los Angeles",
"city": "United States"
},
"entityId": "promotional-traffic-entity",
"applicationId": "marketing-automation-application",
"campaignReferenceId": "campaign-reference-123"
}
苦情通知
{
"notificationType": "COMPLAINED",
"eventId": "8d2f8781-91fc-4473-9b0a-b12b51fafbe6",
"domain": "some-domain.com",
"recipient": "john.doe@some-domain.com",
"sender": "noreply@some-domain.com",
"sendDateTime": 1704106800000,
"messageId": "14b734recsf69n8zkao5",
"bulkId": "ikzzmbhu6223bxkhmyrj",
"callbackData": "Callback data",
"entityId": "promotional-traffic-entity",
"applicationId": "marketing-automation-application",
"campaignReferenceId": "campaign-reference-123"
}
遅延バウンス通知
{
"notificationType": "LATE_BOUNCE",
"eventId": "8d2f8781-91fc-4473-9b0a-b12b51fafbe6",
"domain": "some-domain.com",
"recipient": "john.doe@some-domain.com",
"sender": "noreply@some-domain.com",
"sendDateTime": 1704106800000,
"messageId": "14b734recsf69n8zkao5",
"bulkId": "ikzzmbhu6223bxkhmyrj",
"callbackData": "Callback data",
"entityId": "promotional-traffic-entity",
"applicationId": "marketing-automation-application",
"campaignReferenceId": "campaign-reference-123"
}