<p class="platform-info type-classic-vpc">Classic/VPC 환경에서 이용 가능합니다.</p>
서비스의 메일 발송 요청 목록을 조회합니다. 목록 탐색에 필요한 요약 필드만 반환하며, 처리 통계가 필요하면 발송 요청 조회 API를, 개별 메일이 필요하면 메일 목록 조회 API를 사용해 주십시오.
요청
요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.
| 메서드 | URI |
|---|---|
| GET | /mail/v2/services/{serviceId}/requests |
요청 헤더
Simple & Easy Notification Service API에서 공통으로 사용하는 헤더에 대한 정보는 Simple & Easy Notification Service 요청 헤더를 참조해 주십시오.
| 필드 | 필수 여부 | 설명 |
|---|---|---|
x-ncp-lang |
Optional | 응답 메시지 언어
|
요청 경로 파라미터
요청 경로 파라미터에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
serviceId |
String | Required | 메일 서비스 아이디
|
요청 쿼리 파라미터
요청 쿼리 파라미터에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
fromDateTime |
String | Required | 조회 기간의 시작 일시
|
toDateTime |
String | Required | 조회 기간의 끝 일시
|
requestId |
String | Optional | 발송 요청 아이디
|
mailId |
String | Optional | 메일 아이디
|
title |
String | Optional | 메일 제목
|
templateNo |
Integer | Optional | 템플릿 번호
|
senderAddress |
String | Optional | 발신자 메일 주소
|
recipientAddress |
String | Optional | 수신자 메일 주소
|
dispatchType |
String | Optional | 발송 경로
|
status |
String | Optional | 발송 요청 상태
|
pageNo |
Integer | Optional | 페이지 번호
|
pageSize |
Integer | Optional | 페이지당 항목 수
|
sort |
String | Optional | 정렬 조건
|
- 타임존 오프셋의
+는 쿼리 스트링에서%2B로 인코딩해야 합니다. (예:fromDateTime=2026-07-01T00:00:00%2B09:00) - 서로 다른 필터를 함께 지정하면 AND로 동작합니다.
- 정렬 키가 고유하지 않으면 동일 값 항목 간 순서는 보장되지 않습니다.
요청 예시
요청 예시는 다음과 같습니다.
curl --location --request GET 'https://sens.apigw.ntruss.com/mail/v2/services/ncp:mail:kr:1********2:main/requests?fromDateTime=2026-07-01T00%3A00%3A00%2B09%3A00&toDateTime=2026-07-12T23%3A59%3A59%2B09%3A00&status=COMPLETED&pageNo=0&pageSize=10&sort=createDateTime%2Cdesc' \
--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'
응답
응답 형식을 설명합니다.
응답 바디
응답 바디에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
requests |
Array | - | 발송 요청 목록: requests
|
totalElements |
Integer | - | 조건에 맞는 전체 항목 수 |
totalPages |
Integer | - | 전체 페이지 수 |
pageNo |
Integer | - | 현재 페이지 번호 |
pageSize |
Integer | - | 페이지당 항목 수 |
requests
requests에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
requestId |
String | - | 발송 요청 아이디 |
createDateTime |
String | - | 발송 요청 접수 일시
|
templateNo |
Integer | - | 사용된 템플릿 번호
|
templateName |
String | - | 사용된 템플릿 이름
|
status |
String | - | 발송 요청 상태
|
senderAddress |
String | - | 발신자 메일 주소 |
senderName |
String | - | 발신자 이름
|
dispatchType |
String | - | 발송 경로
|
elapsedTime |
String | - | 발송 소요 시간
|
sendDateTime |
String | - | 발송 완료 일시
|
reservationDateTime |
String | - | 예약 발송 일시
|
requestCount |
Integer | - | 발송 메일 건수
|
recipientCount |
Integer | - | 수신자 수
|
수신 거부·발송 차단으로 발송되지 않은 수신자는 성공으로 집계되지 않습니다. 따라서 수신 거부 주소만 있는 요청은 FAILED로 판정됩니다. 수신자별 사유는 메일 상세 조회 API의 recipients[]로 확인해 주십시오.
응답 상태 코드
응답 상태 코드에 대한 설명은 다음과 같습니다.
| HTTP 상태 코드 | 코드 | 메시지 | 설명 |
|---|---|---|---|
| 200 | - | OK | 요청 성공 |
| 400 | InvalidParameter | Bad Request | 요청 파라미터 오류
|
| 401 | Unauthorized | Unauthorized | 인증 실패 |
| 403 | Forbidden | Forbidden | 경로의 serviceId에 대한 권한 없음 |
| 404 | NotFound | Not Found | 경로의 자원이 존재하지 않음 |
| 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."
}
}
응답 예시
응답 예시는 다음과 같습니다.
{
"requests": [
{
"requestId": "20260712-R-01K0ZQ8YV3M4N5P6R7S8T9VAWX-777",
"createDateTime": "2026-07-12T09:59:35+09:00",
"templateNo": null,
"templateName": null,
"status": "COMPLETED",
"senderAddress": "no_reply@company.com",
"senderName": null,
"dispatchType": "API",
"elapsedTime": "00:00:05.230",
"sendDateTime": "2026-07-12T09:59:40+09:00",
"reservationDateTime": null,
"requestCount": 4,
"recipientCount": 100
}
],
"totalElements": 21,
"totalPages": 3,
"pageNo": 0,
"pageSize": 10
}