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
を含むメールを送信します。
動的コンテンツを含むメールの送信
動的コンテンツを含むメールを送信するには、HTMLコンテンツ内でテンプレート言語 を使って、リクエストの to
パラメーター内のプレースホルダー値を定義します。使用可能なテンプレート言語コンストラクトのいずれかを HTMLコンテンツに追加して、置換、条件文、または反復を解決します。
APIリクエストで新しいテンプレート言語コンストラクトを使用するには、templateLanguageVersion=2というパラメーターを指定します。
HTMLで古いハンドルバー {{ヘルパー}} を使用する場合は、APIリクエストで TemplateLanguageVersion パラメーターを指定しないでください。次の表では、ハンドルバー {{ヘルパー}} の例を示しています。
フル機能のメールの送信 (opens in a new tab)に関するリファレンスドキュメントをご参照ください。
ハンドルバーヘルパーの例
HTML REQUEST | TO JSON REQUEST | RESOLVED HTML |
---|---|---|
ヘルパーの例:#eq | ||
{{#eq name "Bob"}} Dear {{name}} {{else}} Hi {{name}} {{/eq}} | { "to": "john.smith@somedomain.com", "placeholders": { "name": "Bob" } } | Dear Bob |
ヘルパーの例:#each | ||
{{#each friends}} Hi {{this}} {{/each}} | { "to": "john.smith@somedomain.com", "placeholders": { "friends":["Bob","John","Jack"] } } | Hi Bob Hi John Hi Jack |
ヘルパーの例:#unlessEq | ||
{{#unlessEq name "Bob"}} Dear {{name}} {{else}} Hi {{name}} {{/unlessEq}} | { "to": "john.smith@somedomain.com", "placeholders": { "name": "Bob" } } | Hi Bob |
ヘルパーの例:#default | ||
Hi {{name}} | { "to": "john.smith@somedomain.com", "placeholders": { "name": "Bob" } } | Hi Bob |
ヘルパーの例:#gt | ||
{{#gt age 12}} Welcome {{name}}! {{else}} Hey {{name}}, you are under age {{/gt}} | { "to": "john.smith@somedomain.com", "placeholders": { "name": "Bob" , "age":10 } } | Hey Bob, you are under age |
ヘルパーの例:#lt | ||
{{#lt age 12}} Welcome {{name}}! {{else}} Sorry {{name}}, This is kids arena {{/lt}} | { "to": "john.smith@somedomain.com", "placeholders": { "name": "Bob" , "age":10 } } | Welcome Bob! |
ヘルパーの例:#equalsIgnoreCase | ||
{{#equalsIgnoreCase gender "male"}} Dear Mr {{name}} {{else}} Dear customer {{/equalsIgnoreCase}} | { "to": "john.smith@somedomain.com", "placeholders":{ "name": "Bob" , "gender": "MALE" } } | Dear Mr Bob |
ヘルパーの例:#gte | ||
{{#gte age 12}} Welcome {{name}}! {{else}} Hey {{name}}, you are under age {{/gte}} | { "to": "john.smith@somedomain.com", "placeholders": { "name": "Bob" , "age":10 } } | Hey Bob, you are under age |
ヘルパーの例:#lte | ||
{{#lte 12歳}} ようこそ {{name}}! {{else}} 申し訳ありませんが、{{name}}, This is kids arena {{/lte}} | { "to": "john.smith@somedomain.com", "placeholders": { "name": "Bob" , "age":10 } } | Welcome Bob! |
ヘルパーの例:#compare | ||
{{#compare name "!=" "Bob"}}Hi {{name}}{{else}} Dear Bob{{/compare}} | { "to": "john.smith@somedomain.com", "placeholders": { "name": "Jane" , "age":10 } } | Hi Jane |
ヘルパーの例:#equals | ||
{{#equals name "Bob"}} Dear {{name}} {{else}} Hi {{name}} {{/equals}} | { "to": "john.smith@somedomain.com", "placeholders": { "name": "Bob" } } | Dear Bob |
ヘルパーの例:#lessThan | ||
{{#lessThan age 12}} Welcome {{name}}! {{else}} Sorry {{name}}, This is kids arena {{/lessThan}} | { "to": "john.smith@somedomain.com", "placeholders": { "name": "Bob" , "age":10 } } | Welcome Bob! |
ヘルパーの例:#lessThanOrEquals | ||
{{#lessThanOrEquals age 12}} Welcome {{name}}! {{else}} Sorry {{name}}, This is kids arena {{/lte}} | { "to": "john.smith@somedomain.com", "placeholders": { "name": "Bob" , "age":10 } } | Welcome Bob! |
ヘルパーの例:#greaterThan | ||
{{#greaterThan age 12}} Welcome {{name}}! {{else}} Hey {{name}}, you are under age {{/greaterThan }} | { "to": "john.smith@somedomain.com", "placeholders": { "name": "Bob" , "age":10 } } | Hey Bob, you are under age |
ヘルパーの例:#greaterThanOrEquals | ||
{{#greaterThanOrEquals age 12}} Welcome {{name}}! {{else}} Hey {{name}}, you are under age{{/greaterThanOrEquals }} | { "to": "john.smith@somedomain.com", "placeholders": { "name": "Bob" , "age":10 } } | Hey Bob, you are under age |
ヘルパーの例:#when | ||
{{#when name "!=" "Bob"}} Hi {{name}}{{else}}Dear Bob{{/when}} | { "to": "john.smith@somedomain.com", "placeholders": { "name": "Jane" , "age":10 } } | Hey Jane |
ヘルパーの例:#contains | ||
{{#contains friends "Bob"}} Hi {{this}} {{/each}} | { "to": "john.smith@somedomain.com", "placeholders": { "friends":["Bob","John","Jack"] } } | Hi Bob |
ヘルパーの例:#and | ||
{{#and great magnificent}}Bob{{else}}Jane{{/and}} | { "to": "john.smith@somedomain.com", "placeholders": { "great": true, "magnificent": true } } | Hi Bob |
ヘルパーの例:#formatNumber | ||
{{#formatNumber price}} {{/formatNumber}} | { "to": "john.smith@somedomain.com", "placeholders": { "price":10000 } } | 10,000 |
ヘルパーの例:#isTruthy | ||
{{#isTruthy Male}}Hi Bob{{else}}Hi Jane{{/isTruthy}} | { "to": "john.smith@somedomain.com", "placeholders": { "Male": true } } | Hi Bob |
ヘルパーの例:#isFalsey | ||
{{#isFalsey Male}}Hi Bob{{else}}Hi Jane{{/isFalsey}} | { "to": "john.smith@somedomain.com", "placeholders": { "Male": true } } | Hi Jane |
ヘルパーの例:#ifEven | ||
{{#ifEven age}}Hi Bob{{else}}Hi Jane{{/ifEven}} | { "to": "john.smith@somedomain.com", "placeholders": { "age": 20 } } | Hi Bob |
ヘルパーの例:#ifOdd | ||
{{#ifOdd age}}Hi Bob{{else}}Hi Jane{{/ifOdd}} | { "to": "john.smith@somedomain.com", "placeholders": { "age": 20 } } | Hi Jane |
ヘルパーの例:#ifNth | ||
{{#ifNth age balance}}Hi Bob{{else}}Hi Jane{{/ifNth}} | { "to": "john.smith@somedomain.com", "placeholders": { "age": 20, "balance": 20000 } } | Hi Bob |
ヘルパーの例:#is | ||
{{#is name "Bob"}}Dear {{name}}{{else}}Hi {{name}}{{/is}} | { "to": "john.smith@somedomain.com", "placeholders": { "name": "Bob" , "age":10 } } | Dear Bob |
ヘルパーの例:#isnt | ||
{{#isnt name "Bob"}}Dear {{name}}{{else}}Hi {{name}}{{/isnt}} | { "to": "john.smith@somedomain.com", "placeholders": { "name": "Bob" , "age":10 } } | Hi Bob |
ヘルパーの例:#neither | ||
{{#neither great magnificent}}A{{else}}B{{/neither}} | { "to": "john.smith@somedomain.com", "placeholders": { great: true, magnificent: false } } | B |
ヘルパーの例:#not | ||
{{#not great}}A {{else}} B{{/not}} | { "to": "john.smith@somedomain.com", "placeholders": { great: true, magnificent: false } } | B |
ヘルパーの例:#or | ||
{{#or great magnificent}}A{{else}}B{{/or}} | { "to": "john.smith@somedomain.com", "placeholders": { great: true, magnificent: false } } | A |
ヘルパーの例:#unlessGt | ||
{{#unlessGt physics chemistry}}Hi {{name}}your score in Physics :{{physics}}{{else}}Hi {{name}}your score in Chemistry : {{chemistry}}{{/unlessGt}} | { "to": "john.smith@somedomain.com", "placeholders": { "name": "Bob" , "physics": 70 , "chemistry": 75 } } | Hi Bob your score in Physics : 70 |
ヘルパーの例:#unlessLt | ||
{{#unlessLt physics chemistry}}Hi {{name}}your score in Physics : {{physics}}{{else}}Hi {{name}}your score in Chemistry : {{chemistry}}{{/unlessLt}} | { "to": "john.smith@somedomain.com", "placeholders": { "name": "Bob" , "physics": 70 , "chemistry": 75 } } | Hi Bob your score in Chemistry : 75 |
ヘルパーの例:#unlessGteq | ||
{{#unlessGteq physics chemistry}}Hi {{name}}your score in Physics : {{physics}}{{else}}Hi {{name}}your score in Chemistry : {{chemistry}}{{/unlessGteq}} | { "to": "john.smith@somedomain.com", "placeholders": { "name": "Bob" , "physics": 70 , "chemistry": 75 } } | Hi Bob your score in Physics : 70 |
ヘルパーの例:#unlessLteq | ||
{{#unlessLteq physics chemistry}}Hi {{name}}your score in Physics : {{physics}}{{else}}Hi {{name}}your score in Chemistry : {{chemistry}}{{/unlessLteq}} | { "to": "john.smith@somedomain.com", "placeholders": { "name": "Bob" , "physics": 70 , "chemistry": 75 } } | Hi Bob your score in Chemistry : 75 |
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
を使用します。
通知の追跡
trackingUrl
が渡されると、受信者がメールを開くか、メール内の URLをクリックするたびに通知されます。開封通知とクリック通知で渡されるデータの構造を以下に示します。
開封通知
{
"notificationType": "OPENED",
"domain": "sendingdomain.com",
"recipient": "john.smith@somecompany.com",
"sendDateTime": 1517652288663,
"messageId": "zl3cf7frmy48ueavnnxy",
"callbackData": "Email open and click callback data",
"bulkId": "8pok2duu132mojj587zc",
"recipientInfo": {
"deviceType": "Desktop",
"os": "Windows XP",
"deviceName": "PC"
}
}
クリック通知
{
"notificationType": "CLICKED",
"domain": "sendingdomain.com",
"recipient": "jane.smith@somecompany.com",
"url": "http://www.example.com/landingpage.html",
"sendDateTime": 1517652288646,
"messageId": "zsf6q5vjgn1y6qqn65g7",
"callbackData": "Email open and click callback data",
"bulkId": "8pok2duu132mojj587zc",
"recipientInfo": {
"deviceType": "Desktop",
"os": "Windows XP",
"deviceName": "PC"
}
}