Available in Classic and VPC
This retrieves the details of a single email included in the delivery request. It returns the email subject, body, list of attachments, and delivery results for each recipient (recipients[]).
Request
This section describes the request format. The method and URI are as follows:
| Method | URI |
|---|---|
| GET | /mail/v2/services/{serviceId}/requests/{requestId}/mails/{mailId} |
Request headers
For information about the request headers common to all Simple & Easy Notification Service APIs, see Simple & Easy Notification Service request headers.
| Field | Required | Description |
|---|---|---|
x-ncp-lang |
Optional | Response message language
|
Request path parameters
You can use the following path parameters with your request:
| Field | Type | Required | Description |
|---|---|---|---|
serviceId |
String | Required | Email service ID
|
requestId |
String | Required | Delivery request ID
|
mailId |
String | Required | Email ID
|
Request example
The request example is as follows:
curl --location --request GET 'https://sens.apigw.ntruss.com/mail/v2/services/ncp:mail:kr:1********2:main/requests/20260712-R-01K0ZQ8YV3M4N5P6R7S8T9VAWX-777/mails/20260712-M-01K0ZQ8YVBQ7C2D3E4F5G6H7J8-777' \
--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: ko-KR'
Response
This section describes the response format.
Response body
The response body includes the following data:
| Field | Type | Required | Description |
|---|---|---|---|
requestId |
String | - | Delivery request ID |
mailId |
String | - | Email ID |
requesterIp |
String | - | IP address of the client that requested the message
|
createDateTime |
String | - | Delivery request acceptance date and time
|
title |
String | - | Email subject
|
templateNo |
Integer | - | Template number used
|
templateName |
String | - | Template name used
|
status |
String | - | Email delivery status
|
senderAddress |
String | - | Sender email address |
senderName |
String | - | Sender name
|
sendDateTime |
String | - | Delivery completion date and time
|
reservationDateTime |
String | - | Scheduled delivery date and time
|
body |
String | - | Email body
|
advertising |
Boolean | - | Whether it is an ad email
|
attachFiles |
Array | - | Attachment list: attachFiles
|
recipients |
Array | - | List of delivery results by recipient: recipients
|
attachFiles
The following describes attachFiles.
| Field | Type | Required | Description |
|---|---|---|---|
fileId |
String | - | Attachment ID |
fileName |
String | - | Attachment file name
|
fileSize |
Integer | - | Attachment file size (byte) |
recipients
The following describes recipients.
| Field | Type | Required | Description |
|---|---|---|---|
address |
String | - | Recipient email address |
name |
String | - | Recipient name
|
type |
String | - | Recipient type
|
received |
Boolean | - | Read receipt status
|
receivedDateTime |
String | - | Read receipt date and time
|
status |
String | - | Delivery status by recipient
|
retryCount |
Integer | - | Number of retry attempts
|
sendResultCode |
String | - | Delivery result code
|
sendResultMessage |
String | - | Raw message of the delivery result
|
sendResultCode
The following describes recipients[].sendResultCode.
| Code | Description |
|---|---|
CANCELED_MAIL |
Cancel delivery |
CONNECTION_ABNORMAL |
Temporary delivery failure due to abnormal connection |
CONTENT_HAS_TAG_FORM |
Delivery failure due to a replacement tag included in the mail content |
DKIM_FAIL |
Email delivery failed due to a DKIM error. |
EMPTY_BODY_CONTENT |
Failed to send because the email body could not be configured due to a system error |
MAILBOX_ABNORMAL |
Temporary delivery failure due to abnormal recipient's inbox |
MAILBOX_ERROR |
Delivery failure due to an error in the recipient's inbox |
MAIL_CONTENTS_ERROR |
Delivery failure due to a mail content error |
MAIL_SENT |
Delivery successful |
MIME_MESSAGE_CREATE_FAIL |
Failed to send because MIME message could not be created due to a system error |
NETWORK_ABNORMAL |
Temporary delivery failure due to abnormal networks |
NETWORK_ERROR |
Delivery failure due to a network error |
NONEXISTENT_DOMAIN_ADDRESS |
Failed to send because the recipient domain does not exist |
RECEIVE_MAIL_SERVICE_ABNORMAL |
Temporary delivery failure due to recipient's abnormal mail service |
RECEIVE_MAIL_SERVICE_ERROR |
Delivery failure due to a recipient's mail service error |
RECIPIENT_ADDRESS_ERROR |
Delivery failure due to a recipient address error |
RESENDING_MAIL |
Resending |
RESEND_MAIL_FAIL |
Delivery failure due to excessive number of resending attempts |
SECURITY_AND_POLICY_ABNORMAL |
Temporary delivery failure due to abnormal security and policy |
SECURITY_AND_POLICY_ERROR |
Delivery failure due to security and policy errors |
SEND_BLOCK_ADDRESS |
Blocked because the delivery request was made to a recipient who blocks the delivery |
SMTP_ABNORMAL |
Temporary delivery failure due to abnormal SMTP with the recipient |
SMTP_ERROR |
Delivery failure due to an SMTP error with the recipient |
TEST_MAIL_SEND |
Sending test email of system |
UNDEFINED_ERROR |
Delivery failure due to an undefined error |
UNKNOWN_CAUSE_FAIL |
Delivery failure due to an unknown error occurred in or out of the system |
UNKNOWN_DOMAIN_ADDRESS |
Delivery failure due to requests being made to unknown or blocked domains |
UNSUBSCRIBE_ADDRESS |
Blocked because the delivery request was made to a recipient who rejects the email |
UNSUPPORTED_ENCODING_ADDRESS |
Delivery failure due to a failure in encoding the recipient's address |
READ_TIMED_OUT |
Failed to send due to a lack of response from the receiving server. |
CONNECTION_ERROR |
Failed to send due to the receiving server closing the connection. |
mailIdmust be an email associated with therequestIdin the path. Only authorized callers are permitted; if the email is not associated, a404error is returned.- For emails that have not been sent,
sendDateTime,recipients[].sendResultCode, andrecipients[].sendResultMessagearenull.
Response status codes
The following describes the response status codes:
| HTTP status code | Code | Message | Description |
|---|---|---|---|
| 200 | - | OK | Request succeeded |
| 400 | InvalidParameter | Bad Request | Request parameter error |
| 401 | Unauthorized | Unauthorized | Authentication failed |
| 403 | Forbidden | Forbidden | No permission for the serviceId in the path. |
| 404 | NotFound | Not Found | Either the requestId or mailId in the path does not exist. |
| 500 | InternalServerError | Internal Server Error | Internal server error |
Unlike other APIs in the Simple & Easy Notification Service, the Mail v2 API returns errors in the NCP API standard error format. Instead of the status and error (string) fields in the response body, the error object shown below is returned.
Error response body
The response body includes the following data if the call fails.
| Field | Type | Required | Description |
|---|---|---|---|
error |
Object | - | Error information |
error.errorCode |
String | - | Error code
|
error.message |
String | - | Predefined message for each error code
|
error.detail |
String | - | Detailed reason for each request
|
error.fieldErrors |
Array | - | List of errors by parameter
|
Error response example
The following is a sample response upon a failed call.
{
"error": {
"errorCode": "NotFound",
"message": "The requested resource was not found."
}
}
Response example
The response example is as follows:
{
"requestId": "20260712-R-01K0ZQ8YV3M4N5P6R7S8T9VAWX-777",
"mailId": "20260712-M-01K0ZQ8YVBQ7C2D3E4F5G6H7J8-777",
"requesterIp": "203.0.113.42",
"createDateTime": "2026-07-12T15:19:53+09:00",
"title": "Welcome, Gildong Hong.",
"templateNo": 41,
"templateName": "Membership level change notice",
"status": "PARTIAL_FAILED",
"senderAddress": "no_reply@company.com",
"senderName": "Customer center",
"sendDateTime": "2026-07-12T15:19:53+09:00",
"reservationDateTime": null,
"body": "<body>Your membership level has changed from SILVER to GOLD.</body>",
"advertising": false,
"attachFiles": [
{
"fileId": "8f14e45fceea167a5a36dedd4bea2543",
"fileName": "Membership level guide.pdf",
"fileSize": 204800
}
],
"recipients": [
{
"address": "hongildong@example.com",
"name": "Gildong Hong",
"type": "TO",
"received": false,
"receivedDateTime": null,
"status": "COMPLETED",
"retryCount": 0,
"sendResultCode": "MAIL_SENT",
"sendResultMessage": "Mail sent."
},
{
"address": "test12@example.com",
"name": null,
"type": "CC",
"received": false,
"receivedDateTime": null,
"status": "FAILED",
"retryCount": 0,
"sendResultCode": "RECIPIENT_ADDRESS_ERROR",
"sendResultMessage": "550 5.1.1 No such user - nsmtp"
}
]
}