Classic/VPC 환경에서 이용 가능합니다.
발송 요청에 포함된 메일 1건의 상세 정보를 조회합니다. 메일 제목·본문과 첨부파일 목록, 수신자별 발송 결과(recipients[])를 함께 반환합니다.
요청
요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.
| 메서드 | URI |
|---|---|
| GET | /mail/v2/services/{serviceId}/requests/{requestId}/mails/{mailId} |
요청 헤더
Simple & Easy Notification Service API에서 공통으로 사용하는 헤더에 대한 정보는 Simple & Easy Notification Service 요청 헤더를 참조해 주십시오.
| 필드 | 필수 여부 | 설명 |
|---|---|---|
x-ncp-lang |
Optional | 응답 메시지 언어
|
요청 경로 파라미터
요청 경로 파라미터에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
serviceId |
String | Required | 메일 서비스 아이디
|
requestId |
String | Required | 발송 요청 아이디
|
mailId |
String | Required | 메일 아이디
|
요청 예시
요청 예시는 다음과 같습니다.
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'
응답
응답 형식을 설명합니다.
응답 바디
응답 바디에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
requestId |
String | - | 발송 요청 아이디 |
mailId |
String | - | 메일 아이디 |
requesterIp |
String | - | 발송을 요청한 클라이언트의 IP 주소
|
createDateTime |
String | - | 발송 요청 접수 일시
|
title |
String | - | 메일 제목
|
templateNo |
Integer | - | 사용된 템플릿 번호
|
templateName |
String | - | 사용된 템플릿 이름
|
status |
String | - | 메일 발송 상태
|
senderAddress |
String | - | 발신자 메일 주소 |
senderName |
String | - | 발신자 이름
|
sendDateTime |
String | - | 발송 완료 일시
|
reservationDateTime |
String | - | 예약 발송 일시
|
body |
String | - | 메일 본문
|
advertising |
Boolean | - | 광고 메일 여부
|
attachFiles |
Array | - | 첨부파일 목록: attachFiles
|
recipients |
Array | - | 수신자별 발송 결과 목록: recipients
|
attachFiles
attachFiles에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
fileId |
String | - | 첨부파일 아이디 |
fileName |
String | - | 첨부파일 이름
|
fileSize |
Integer | - | 첨부파일 크기(Byte) |
recipients
recipients에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
address |
String | - | 수신자 메일 주소 |
name |
String | - | 수신자 이름
|
type |
String | - | 수신자 유형
|
received |
Boolean | - | 수신 확인 여부
|
receivedDateTime |
String | - | 수신 확인 일시
|
status |
String | - | 수신자별 발송 상태
|
retryCount |
Integer | - | 발송 재시도 횟수
|
sendResultCode |
String | - | 발송 결과 코드
|
sendResultMessage |
String | - | 발송 결과 원문 메시지
|
sendResultCode
recipients[].sendResultCode에 대한 설명은 다음과 같습니다.
| 코드 | 설명 |
|---|---|
CANCELED_MAIL |
발송 취소 |
CONNECTION_ABNORMAL |
연결 이상으로 인해 일시적 발송 실패 |
CONTENT_HAS_TAG_FORM |
메일 콘텐츠 내 치환 태그가 존재하여 발송 실패 |
DKIM_FAIL |
DKIM 오류로 인해 메일 발송 실패 |
EMPTY_BODY_CONTENT |
시스템 오류로 메일 본문을 설정하지 못하여 발송 실패 |
MAILBOX_ABNORMAL |
수신자 메일함 이상으로 인해 일시적 발송 실패 |
MAILBOX_ERROR |
수신자 메일함 오류로 인해 발송 실패 |
MAIL_CONTENTS_ERROR |
메일 콘텐츠 오류로 인해 발송 실패 |
MAIL_SENT |
발송 성공 |
MIME_MESSAGE_CREATE_FAIL |
시스템 오류로 MIME 메시지를 생성하지 못하여 발송 실패 |
NETWORK_ABNORMAL |
네트워크 이상으로 인해 일시적 발송 실패 |
NETWORK_ERROR |
네트워크 오류로 인해 발송 실패 |
NONEXISTENT_DOMAIN_ADDRESS |
수신자 도메인이 존재하지 않아 발송 실패 |
RECEIVE_MAIL_SERVICE_ABNORMAL |
수신자 메일 서비스 이상으로 인해 일시적 발송 실패 |
RECEIVE_MAIL_SERVICE_ERROR |
수신자 메일 서비스 오류로 인해 발송 실패 |
RECIPIENT_ADDRESS_ERROR |
수신자 주소 오류로 인해 발송 실패 |
RESENDING_MAIL |
재발송 중 |
RESEND_MAIL_FAIL |
재발송 시도 초과로 인해 발송 실패 |
SECURITY_AND_POLICY_ABNORMAL |
보안 및 정책 이상으로 인해 일시적 발송 실패 |
SECURITY_AND_POLICY_ERROR |
보안 및 정책 오류로 인해 발송 실패 |
SEND_BLOCK_ADDRESS |
발송 차단된 수신자로 발송 요청하여 차단 |
SMTP_ABNORMAL |
수신 측과의 SMTP 이상으로 인해 일시적 발송 실패 |
SMTP_ERROR |
수신 측과의 SMTP 오류로 인해 발송 실패 |
TEST_MAIL_SEND |
시스템의 테스트 메일 발송 |
UNDEFINED_ERROR |
정의되지 않은 오류로 인해 발송 실패 |
UNKNOWN_CAUSE_FAIL |
시스템 내외에서 발생한 알 수 없는 오류로 인해 발송 실패 |
UNKNOWN_DOMAIN_ADDRESS |
알 수 없는 도메인 또는 차단된 도메인이 포함된 주소로 발송 요청하여 실패 |
UNSUBSCRIBE_ADDRESS |
수신 거부한 주소로 발송 요청하여 차단 |
UNSUPPORTED_ENCODING_ADDRESS |
수신자 주소 인코딩 실패로 인해 발송 실패 |
READ_TIMED_OUT |
수신 서버 미응답으로 인한 발송 실패 |
CONNECTION_ERROR |
수신 서버의 연결 종료로 인한 발송 실패 |
mailId는 경로의requestId에 소속된 메일이어야 합니다. 권한이 있는 호출자에 한해, 소속이 아니면404를 반환합니다.- 발송이 완료되지 않은 메일은
sendDateTime,recipients[].sendResultCode,recipients[].sendResultMessage가null입니다.
응답 상태 코드
응답 상태 코드에 대한 설명은 다음과 같습니다.
| HTTP 상태 코드 | 코드 | 메시지 | 설명 |
|---|---|---|---|
| 200 | - | OK | 요청 성공 |
| 400 | InvalidParameter | Bad Request | 요청 파라미터 오류 |
| 401 | Unauthorized | Unauthorized | 인증 실패 |
| 403 | Forbidden | Forbidden | 경로의 serviceId에 대한 권한 없음 |
| 404 | NotFound | Not Found | 경로의 requestId 또는 mailId가 존재하지 않음 |
| 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": "NotFound",
"message": "The requested resource was not found."
}
}
응답 예시
응답 예시는 다음과 같습니다.
{
"requestId": "20260712-R-01K0ZQ8YV3M4N5P6R7S8T9VAWX-777",
"mailId": "20260712-M-01K0ZQ8YVBQ7C2D3E4F5G6H7J8-777",
"requesterIp": "203.0.113.42",
"createDateTime": "2026-07-12T15:19:53+09:00",
"title": "홍길동님 반갑습니다.",
"templateNo": 41,
"templateName": "등급 변경 안내",
"status": "PARTIAL_FAILED",
"senderAddress": "no_reply@company.com",
"senderName": "고객센터",
"sendDateTime": "2026-07-12T15:19:53+09:00",
"reservationDateTime": null,
"body": "<body>귀하의 등급이 SILVER에서 GOLD로 변경되었습니다.</body>",
"advertising": false,
"attachFiles": [
{
"fileId": "8f14e45fceea167a5a36dedd4bea2543",
"fileName": "등급안내.pdf",
"fileSize": 204800
}
],
"recipients": [
{
"address": "hongildong@example.com",
"name": "홍길동",
"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"
}
]
}