Classic/VPC環境で利用できます。
メールの送信をリクエストします。送信リクエスト1件が1つのリソース(requestId)として作成されます。送信は非同期で処理されるため、この APIは受付結果のみを返します。
リクエスト
リクエスト形式を説明します。リクエスト形式は次の通りです。
| メソッド | URI |
|---|---|
| POST | /mail/v2/services/{serviceId}/requests |
リクエストヘッダ
Simple & Easy Notification Service APIで共通して使用されるヘッダの詳細は、Simple & Easy Notification Serviceのリクエストヘッダをご参照ください。
| フィールド | 必須の有無 | 説明 |
|---|---|---|
x-ncp-lang |
Optional | レスポンスメッセージの言語
|
リクエストパスパラメータ
リクエストパスパラメータの説明は次の通りです。
| フィールド | タイプ | 必須の有無 | 説明 |
|---|---|---|---|
serviceId |
String | Required | メールサービス ID
|
リクエストボディ
リクエストボディの説明は次の通りです。
| フィールド | タイプ | 必須の有無 | 説明 |
|---|---|---|---|
senderAddress |
String | Conditional | 送信者のメールアドレス
|
senderName |
String | Optional | 送信者名
|
templateNo |
Integer | Conditional | テンプレート番号
|
title |
String | Conditional | メールの件名
|
body |
String | Conditional | メールの本文
|
individual |
Boolean | Optional | 個別送信の有無
|
confirmAndSend |
Boolean | Optional | 確認後送信の有無
|
advertising |
Boolean | Optional | 広告メールの有無
|
parameters |
Object | Optional | 全受信者に共通して適用される置換変数
|
reservationDateTime |
String | Optional | 予約送信日時
|
attachFileIds |
Array | Optional | 添付ファイル IDリスト
|
recipients |
Array | Conditional | 受信者リスト: recipients
|
recipientGroupFilter |
Object | Conditional | アドレス帳グループによる受信者の指定: recipientGroupFilter
|
useBasicUnsubscribeMessage |
Boolean | Optional | デフォルトの受信拒否文言を使用するかどうか
|
unsubscribeMessage |
String | Optional | ユーザー指定の受信拒否文言
|
recipientsとrecipientGroupFilterを両方入力すると、2つのリストを連結して処理し、同じアドレスが両方にあっても重複は除去されません。この場合、該当アドレスにメールが2通送信され、月間送信上限も2件差し引かれます。recipientGroupFilterで受信者を指定した場合、100,000件の上限は適用されず、月間送信上限のみが適用されます。CCとBCCはそれぞれ最大30人です。- 月間送信上限を超えると
429 ResourceQuotaExceededを返します。 - 受付レスポンスには送信状態が含まれません。受付直後の状態は即時送信の場合
READY、予約送信の場合RESERVEDであり、その後の状態は送信リクエストの照会 APIをポーリングして確認します。ポーリング間隔は該当 APIのretry-afterレスポンスヘッダに従います。
recipients
recipientsの説明は次の通りです。
| フィールド | タイプ | 必須の有無 | 説明 |
|---|---|---|---|
address |
String | Required | 受信者のメールアドレス
|
name |
String | Optional | 受信者名
|
type |
String | Optional | 受信者タイプ
|
parameters |
Object | Optional | 該当受信者にのみ適用される置換変数
|
recipientGroupFilter
recipientGroupFilterの説明は次の通りです。
| フィールド | タイプ | 必須の有無 | 説明 |
|---|---|---|---|
operator |
String | Optional | グループ条件の結合演算子
|
groups |
Array | Required | アドレス帳グループ名リスト |
リクエスト例
リクエストのサンプルコードは次の通りです。
curl --location --request POST 'https://sens.apigw.ntruss.com/mail/v2/services/ncp:mail:kr:1********2:main/requests' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--header 'x-ncp-lang: ja-JP' \
--header 'Content-Type: application/json' \
--data '{
"senderAddress": "no_reply@company.com",
"senderName": "カスタマーセンター",
"title": "${customer_name}様、ようこそ。",
"body": "お客様の会員ランクが${BEFORE_GRADE}から${AFTER_GRADE}に変更されました。",
"individual": true,
"advertising": false,
"recipients": [
{
"address": "yamada@example.com",
"name": "山田太郎",
"type": "TO",
"parameters": {
"customer_name": "山田太郎",
"BEFORE_GRADE": "SILVER",
"AFTER_GRADE": "GOLD"
}
}
],
"useBasicUnsubscribeMessage": true
}'
レスポンス
レスポンス形式を説明します。
レスポンスボディ
レスポンスボディの説明は次の通りです。
| フィールド | タイプ | 必須の有無 | 説明 |
|---|---|---|---|
requestId |
String | - | 送信リクエスト ID
|
requestCount |
Integer | - | 送信メール件数
|
createDateTime |
String | - | 送信リクエストの受付日時
|
レスポンスステータスコード
レスポンスステータスコードの説明は次の通りです。
| HTTPステータスコード | コード | メッセージ | 説明 |
|---|---|---|---|
| 202 | - | Accepted | 送信リクエストの受付成功 |
| 400 | InvalidParameter | Bad Request | リクエストパラメータエラー
|
| 401 | Unauthorized | Unauthorized | 認証失敗 |
| 403 | Forbidden | Forbidden | パスのserviceIdに対する権限なし |
| 404 | NotFound | Not Found | パスのリソースが存在しない |
| 413 | ContentTooLarge | Content Too Large | リクエストボディのサイズ超過 |
| 429 | ResourceQuotaExceeded | Too Many Requests | 月間送信上限の超過 |
| 429 | ThrottlingExceeded | Too Many Requests | 呼び出し頻度制限の超過 |
| 500 | InternalServerError | Internal Server Error | サーバ内部エラー |
Simple & Easy Notification Serviceの他の APIとは異なり、メール v2 APIは NCP API標準のエラー形式でエラーを返します。レスポンスボディのstatus、error(文字列)フィールドの代わりに、以下のerrorオブジェクトが返されます。
エラーレスポンスボディ
呼び出しに失敗した場合のレスポンスボディの説明は次の通りです。
| フィールド | タイプ | 必須の有無 | 説明 |
|---|---|---|---|
error |
Object | - | エラー情報 |
error.errorCode |
String | - | エラーコード
|
error.message |
String | - | エラーコードごとの固定メッセージ
|
error.detail |
String | - | リクエストごとの詳細な理由
|
error.fieldErrors |
Array | - | パラメータごとのエラーリスト
|
エラーレスポンス例
呼び出しに失敗した場合のレスポンスのサンプルコードは次の通りです。
{
"error": {
"errorCode": "InvalidParameter",
"message": "The request contains an invalid parameter."
}
}
レスポンス例
レスポンスのサンプルコードは次の通りです。
{
"requestId": "20260702-R-01K0ZQ8YV3M4N5P6R7S8T9VAWX-777",
"requestCount": 1,
"createDateTime": "2026-07-02T10:00:00+09:00"
}