Get email details

Prev Next

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
  • en-US (default) | ko-KR | ja-JP

Request path parameters

You can use the following path parameters with your request:

Field Type Required Description
serviceId String Required Email service ID
  • NRN (NCP Resource Name) format (e.g., ncp:mail:kr:1********2:main).
  • See Get project list.
requestId String Required Delivery request ID
mailId String Required Email ID
  • Must be an email belonging to the requestId specified in the path.
  • See Get email list.

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
  • Records the source address at the time of the request for both console and API deliveries.
createDateTime String - Delivery request acceptance date and time
  • ISO 8601 format
title String - Email subject
  • The result of replacing placeholders with actual values.
templateNo Integer - Template number used
  • null for deliveries that didn't use a template.
templateName String - Template name used
  • null for deliveries that didn't use a template.
status String - Email delivery status
  • READY | RESERVED | SENDING | COMPLETED | FAILED | PARTIAL_FAILED | CANCELED
    • READY: Waiting for delivery to begin.
    • RESERVED: Waiting for the scheduled delivery time.
    • SENDING: Sending the email.
    • COMPLETED: Delivery completed to all recipients of the email.
    • FAILED: Delivery failed to all recipients associated with the email.
    • PARTIAL_FAILED: Delivery failed to only some of the recipients associated with the email.
    • CANCELED: Delivery canceled.
senderAddress String - Sender email address
senderName String - Sender name
  • null for deliveries with no entry.
sendDateTime String - Delivery completion date and time
  • ISO 8601 format.
  • null for emails whose delivery hasn't started.
reservationDateTime String - Scheduled delivery date and time
  • ISO 8601 format.
  • null for immediate delivery.
body String - Email body
  • Result of replacing placeholders with actual values.
  • Includes an opt-out message if advertising is true.
advertising Boolean - Whether it is an ad email
  • true | false
attachFiles Array - Attachment list: attachFiles
  • An empty array if there are no attachments.
recipients Array - List of delivery results by recipient: recipients
  • Includes CC and BCC recipients.
  • For bulk delivery, emails are generated in groups of 30 recipients, so the maximum number of entries is 30.
  • For individual delivery, one email is sent per recipient, so there is one entry.

attachFiles

The following describes attachFiles.

Field Type Required Description
fileId String - Attachment ID
fileName String - Attachment file name
  • Up to 100 characters
fileSize Integer - Attachment file size (byte)

recipients

The following describes recipients.

Field Type Required Description
address String - Recipient email address
name String - Recipient name
  • null for recipients with no entry.
type String - Recipient type
  • TO | CC | BCC
    • TO: Recipient
    • CC: Cc
    • BCC: Bcc
received Boolean - Read receipt status
  • true | false
    • true: The recipient has read the email.
    • false: The recipient has not read the email.
receivedDateTime String - Read receipt date and time
  • ISO 8601 format.
  • null if not read.
status String - Delivery status by recipient
  • READY | RESERVED | SENDING | RETRYING | COMPLETED | FAILED | ERRORED | UNSUBSCRIBED | BLOCKED | CANCELED
    • READY: Waiting for delivery to begin.
    • RESERVED: Waiting for the scheduled delivery time.
    • SENDING: Attempting to send the email to the recipient.
    • RETRYING: Waiting for a retry scheduled due to a temporary failure.
    • COMPLETED: The email was successfully sent to the recipient.
    • FAILED: Delivery failed due to rejection by the recipient’s server, etc.
    • ERRORED: Terminated due to an error during delivery.
    • UNSUBSCRIBED: Not sent because the address is on the opt-out list.
    • BLOCKED: Not sent because the address is on the block list.
    • CANCELED: Delivery was canceled.
retryCount Integer - Number of retry attempts
  • The initial delivery attempt is not included in the retry count.
sendResultCode String - Delivery result code
  • For the full list of values, see sendResultCode.
  • An open set to which values may be added.
  • null for recipients for whom delivery was not completed.
sendResultMessage String - Raw message of the delivery result
  • Raw SMTP response returned by the receiving mail server.
  • null for recipients for whom delivery was not completed.

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.
Note
  • mailId must be an email associated with the requestId in the path. Only authorized callers are permitted; if the email is not associated, a 404 error is returned.
  • For emails that have not been sent, sendDateTime, recipients[].sendResultCode, and recipients[].sendResultMessage are null.

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
Note

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
  • See the code column in the response status code table.
error.message String - Predefined message for each error code
  • Returned in the language specified in the x-ncp-lang header.
error.detail String - Detailed reason for each request
  • This field is omitted if there is no applicable reason.
error.fieldErrors Array - List of errors by parameter
  • field: Name of the parameter where the error occurred.
  • message: Reason for the error.
  • If the error is not parameter-related, this field is omitted.

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"
}
]
}