메일 연계 API 이용을 위한 상세 개발 가이드입니다.
메일 API는 메일 발신, 발신 취소, 상태 조회 세 가지 유형으로 나누어져 있습니다.
| API | URI | Method | Description |
|---|
| 일반 메일 발신 | /mail/api/v2.0/mails/send?userId=Knox아이디 | POST | Knox 메일을 발신한다. |
| 대외비 메일 발신 | /mail/api/v2.0/mails/secu-send?userId=Knox아이디 | POST | Knox 대외비 메일을 발신한다. |
| 메일 발신 취소 | /mail/api/v2.0/mails/{mailId}/cancel?userId=Knox아이디 | POST | Knox 내부로 발신한 메일을 발신 취소한다. |
| 메일 별 수신상태 조회 | /mail/api/v2.0/mails/deliverystatus/count?userId=Knox아이디 | POST | 해당하는 메일에 대해서 전체 수신 상태를 조회한다. |
| 수신인 별 수신상태 조회 | /mail/api/v2.0/mails/{mailId}/deliverystatus?userId=Knox아이디 | GET | 해당하는 메일에 대해서 수신인 별 수신 상태를 조회한다. |
/mail/api/v2.0/mails/send?userId=Knox아이디
삼성 그룹사 임직원 뿐만 아니라 외부수신인을 포함하여 메일 발신이 가능하며, 발신된 메일을 발신함에 저장됩니다.
주 1. 발신자의 메일>환경설정> 발신메일저장옵션에 따라 다를 수 있습니다.
주 2. Multipart/form-data 구성시 아래 Sample Request 와 같이 각 파트를 구분하여 form-data 의 name 값을 ‘mail’ , ‘attachments’ 로 호출해야 합니다.
Request Parameter
| No. | Properties | Attribute | Mandatory | Parameter Type | Data Type | Sample Data | Note |
|---|
| 1 | 연계 시스템 아이디 | System-ID | Y | Header | String | C60LD0001 | |
| 2 | 유저 아이디 | userId | Y | Query | String | knoxportal | |
| 3 | 메일 제목 | subject | Y | Body | String | 메일 제목입니다. | |
| 4 | 문서 타입 | docSecuType | Y | Body | String | PERSONAL | 1) PERSONAL : 개인 2) OFFICIAL : 공문 |
| 5 | 메일 본문 | contents | Y | Body | String | 안녕하세요, 테스트 메일입니다. | |
| 6 | 컨텐츠 타입 | contentType | Y | Body | String | TEXT | 1) TEXT : 텍스트 2) MIME : 마임 3) HTML : HTML |
| 7 | 발신인 | sender | Y | Body | JSON Object | ||
| 8 | 발신인 이메일 | emailAddress | Y | Body | String | knoxportal@samsung.com | 1) 운영 환경 : knoxportal@samsung.com 2) 스테이지 환경 : knoxportal@stage.samsung.com |
| 9 | 수신인 | recipients | Y | Body | JSON List | ||
| 10 | 수신인 이메일 | emailAddress | Y | Body | String | knoxportal@samsung.com | 1) 운영 환경 : knoxportal@samsung.com 2) 스테이지 환경 : knoxportal@stage.samsung.com |
| 11 | 수신 타입 | recipientType | Y | Body | String | TO | 1) 수신 : TO 2) 참조 : CC 3) 비밀참조 : BCC |
| 12 | 첨부 파일 | attachments | N | Body | multipart/form-data | multipart/form-data로 변환된 바이너리 파일 및 파일명 | |
| 13 | 예약 발신 | reservedTime | N | Body | String | yyyy-MM-dd HH:mm ex)"2023-10-25 15:00" |
10분 단위 설정 |
Response Parameter
| Properties | Attribute | Data Type | Sample Data | Note |
|---|
| API 호출 성공 여부 | result | String | success | |
| 메일 아이디 | mailId | String | 20190409043651epcms1s110a09b3ca1b6c8d754ee1c28a182d8d5 |
Sample
| Request | Response |
|---|
| /mail/api/v2.0/mails/send?userId=knoxportal body : Content-Disposition: form-data; name="mail" { "subject" : "EMAIL SUBJECT (이메일 제목)", "contents" : "EMAIL BODY (이메일 본문)", "contentType" : "TEXT", "docSecuType" : "PERSONAL", "sender" : { "emailAddress" : "knoxportal@samsung.com" }, "recipients" : [ { "emailAddress" : "knoxportal@samsung.com", "recipientType" : "TO" } ] } Content-Disposition: form-data; name="attachments"; filename="db변경.JPG" Content-Type: image/jpeg Content-Disposition: form-data; name="attachments"; filename="2 - 복사본 (2).jpg" Content-Type: image/jpeg |
{ "mailId": "20190531015540hdp_101d2782e07bbad98034606076da1e299b05", "result": "success" } |
| HTTP응답코드 | 에러코드 | 에러메시지 | 조치방안 |
|---|
| 400 | ML1001 | 필수값 중 입력되지 않은 값이 있습니다. | 모든 필수값이 입력되었는지 확인이 필요합니다. 또, 에러 메시지에 null인 parameter 명이 리턴된다면, 해당 값을 우선적으로 확인해야 합니다. |
| 400 | ML1002 | 사용자 정보가 존재하지 않습니다. | 호출 시 입력하는 URI 상의 Knox Id, 혹은 메일 발신자 knox 이메일 addresss가 정상적인지 확인이 필요합니다. |
| 400 | ML1104 | 일반 메일 발신 중 docSecuType 값이 유효하지 않습니다. | 일반 메일의 docSecuType은 PERSONAL(개인), OFFICIAL(공문) 두 값만 허용됩니다. |
| 400 | ML1112 | 메일 제목 크기가 300 bytes를 초과하였습니다. | 제목의 사이즈 확인이 필요합니다. |
| 400 | ML1114 | 메일 발신 API에서 허용되는 content 크기를 초과하였습니다. | 발신 API에서 본문 사이즈는 최대 1mb까지 입력이 가능합니다. 해당 크기를 초과하는 내용에 대해서는 가급적 첨부 파일 등을 이용 부탁드립니다. |
| 400 | ML1115 | 일반 메일 contentType 값이 유효하지 않습니다 | 일반 메일의 contentType 값은 HTML, MIME, TEXT 세 개의 값만 허용됩니다. |
| 400 | ML1117 | 메일 발신 API에서 발신가능한 최대 수신인을 초과하였습니다. | 입력 가능한 최대 수신인 수는 100명입니다. |
| 400 | ML1118 | 수신자의 수신 타입이 잘못 설정되었습니다. | 수신 타입은 TO(수신), CC(참조), BCC(비밀참조) 세 개의 값만 허용됩니다. |
| 403 | ML1102 | 첨부 파일 처리 중 에러가 발생했습니다. | 첨부 파일의 Multipart/form-data 형식 확인이 필요합니다. |
| 400 | CO400 | 잘못된 요청입니다. | 요청 파라미터를 확인해주세요. 특히 userId, docSecuType 이 누락되었는지 확인해주세요. |
/mail/api/v2.0/mails/secu-send?userId=Knox아이디
대외비, 극비로 설정하여 보안 메일을 발송할 수 있습니다.
보안 메일 옵션을 설정할 수 있습니다.
Request Parameter
| No. | Properties | Attribute | Mandatory | Parameter Type | Data Type | Sample Data | Note |
|---|
| 1 | 연계 시스템 아이디 | System-ID | Y | Header | String | C60LD0001 | |
| 2 | 유저 아이디 | userId | Y | Query | String | knoxportal | |
| 3 | 메일 제목 | subject | Y | Body | String | 메일 제목입니다. | |
| 4 | 문서 타입 | docSecuType | Y | Body | String | PERSONAL | 1) PERSONAL : 개인 2) OFFICIAL : 공문 |
| 5 | 메일 본문 | contents | Y | Body | String | 안녕하세요, 테스트 메일입니다. | |
| 6 | 컨텐츠 타입 | contentType | Y | Body | String | TEXT | 1) TEXT : 텍스트 2) MIME : 마임 3) HTML : HTML |
| 7 | 발신인 | sender | Y | Body | JSON Object | ||
| 8 | 발신인 이메일 | emailAddress | Y | Body | String | knoxportal@samsung.com | 1) 운영 환경 : knoxportal@samsung.com 2) 스테이지 환경 : knoxportal@stage.samsung.com |
| 9 | 수신인 | recipients | Y | Body | JSON List | ||
| 10 | 수신인 이메일 | emailAddress | Y | Body | String | knoxportal@samsung.com | 1) 운영 환경 : knoxportal@samsung.com 2) 스테이지 환경 : knoxportal@stage.samsung.com |
| 11 | 수신 타입 | recipientType | Y | Body | String | TO | 1) 수신 : TO 2) 참조 : CC 3) 비밀참조 : BCC |
| 12 | 첨부 파일 | attachments | N | Body | multipart/form-data | multipart/form-data로 변환된 바이너리 파일 및 파일명 | |
| 13 | 대외비 옵션 | drmOption | Y | JSON Object | String | ||
| 14 | 대외비 메일 조회 가능 일 수 | validDays | Y | Body | String | 3 | |
| 15 | 대외비 개봉 가능 횟수 | useCount | Y | Body | String | 3 | |
| 16 | 대외비 수신인 조회 가능 여부 | canView | Y | Body | String | 0 | |
| 17 | 대외비 인쇄 가능 여부 | canPrint | Y | Body | String | 0 | |
| 18 | 대외비 외부 수신인의 개봉 알림 여부 | notifyExternalUser | Y | Body | String | 0 | |
| 19 | 대외비 내부 수신인의 개봉 알림 여부 | notifyInternalUser | Y | Body | String | 0 |
Response Parameter
| Properties | Attribute | Data Type | Sample Data | Note |
|---|
| API 호출 성공 여부 | result | String | success | |
| mailId | 메일 아이디 | String | 20190409043651epcms1s110a09b3ca1b6c8d754ee1c28a182d8d5 |
Sample
| Request | Response |
|---|
| /mail/api/v2.0/mails/send?userId=knoxportal body : Content-Disposition: form-data; name="mail" { "subject" : "EMAIL SUBJECT (이메일 제목)", "contents" : "EMAIL BODY (이메일 본문)", "contentType" : "TEXT", "docSecuType" : "PERSONAL", "sender" : { "emailAddress" : "knoxportal@samsung.com" }, "recipients" : [ { "emailAddress" : "knoxportal@samsung.com", "recipientType" : "TO" } ], "drmOption" : { "validDays":"3", "useCount":"3", "canView":"0", "canPrint":"0", "notifyExternalUser":"0", "notifyInternalUser":"0" } } Content-Disposition: form-data; name="attachments"; filename="db변경.JPG" Content-Type: image/jpeg Content-Disposition: form-data; name="attachments"; filename="2 - 복사본 (2).jpg" Content-Type: image/jpeg |
{ "mailId": "20190531015540hdp_101d2782e07bbad98034606076da1e299b05", "result": "success" } |
| HTTP응답코드 | 에러코드 | 에러메시지 | 조치방안 |
|---|
| 400 | ML1001 | 필수값 중 입력되지 않은 값이 있습니다. | 모든 필수값이 입력되었는지 확인이 필요합니다. 또, 에러 메시지에 null인 parameter 명이 리턴된다면, 해당 값을 우선적으로 확인해야 합니다. |
| 400 | ML1002 | 사용자 정보가 존재하지 않습니다. | 호출 시 입력하는 URI 상의 Knox Id, 혹은 메일 발신자 knox 이메일 addresss가 정상적인지 확인이 필요합니다. |
| 400 | ML1101 | 본문 (content) 값이 입력되지 않았습니다. | 메일 발신 관련 API에서 본문 (content) 값이 정상적으로 입력되었는지 확인이 필요합니다. |
| 400 | ML1107 | 대외비/극비 보안 옵션 값이 유효하지 않습니다. 옵션 값을 확인해주세요. | 대외비/극비의 보안 옵션 설정 유효 값을 가이드를 통해 확인 후 입력이 필요합니다. |
| 400 | ML1108 | 대외비/극비 메일 contentType 값이 유효하지 않습니다. | 대외비/극비 메일에서 contentType은 HTML과 TEXT 타입만 허용됩니다. |
| 400 | ML1109 | 대외비/극비 메일 docSecuType 값이 유효하지 않습니다. | 대외비/극비 메일의 docSecuType은 CONFIDENTIAL(대외비), CONFIDENTIAL_STRICT(극비) 두 값만 허용됩니다. |
| 400 | ML1110 | 극비 메일일 경우에는 내부 수신인에게만 메일 발신이 가능합니다. | 외부 수신인 혹은 유효하지 않은 Knox 이메일 계정이 수신인에 포함되지 않았는지 확인이 필요합니다. |
| 400 | ML1111 | 대외비/극비 메일에서 허용되지 않는 첨부 파일의 확장자가 있습니다. | txt, doc, ppt, xls, pdf, jpg, jpeg, gif, bmp, docx, pptx, xlsx, mht, gul 확장자만 허용됩니다. |
| 400 | ML1112 | 메일 제목 크기가 300 bytes를 초과하였습니다. | 제목의 사이즈 확인이 필요합니다. |
| 400 | ML1114 | 메일 발신 API에서 허용되는 content 크기를 초과하였습니다. | 발신 API에서 본문 사이즈는 최대 1mb까지 입력이 가능합니다. 해당 크기를 초과하는 내용에 대해서는 가급적 첨부 파일 등을 이용 부탁드립니다. |
| 400 | ML1117 | 메일 발신 API에서 발신가능한 최대 수신인을 초과하였습니다. | 입력 가능한 최대 수신인 수는 100명입니다. |
| 400 | ML1118 | 수신자의 수신 타입이 잘못 설정되었습니다. | 수신 타입은 TO(수신), CC(참조), BCC(비밀참조) 세 개의 값만 허용됩니다. |
| 403 | ML1102 | 첨부 파일 처리 중 에러가 발생했습니다. | 첨부 파일의 Multipart/form-data 형식 확인이 필요합니다. |
/mail/api/v2.0/mails/{mailId}/cancel?userId=Knox아이디
Knox 사용자가 발신한 메일을, 수신자의 수신 메일함에서 삭제하는
기능입니다.
(주) Knox 외부로 보낸 메일에 대해서는 발신 취소가
불가능합니다.
Request Parameter
| No. | Properties | Attribute | Mandatory | Parameter Type | Data Type | Sample Data | Note |
|---|
| 1 | 연계 시스템 아이디 | System-ID | Y | Header | String | C60LD0001 | |
| 2 | 메일 아이디 | {mailId} | Y | Path | String | 20190623111845epcms1v2dd0e6bfd951d8f03bd75cd90afacdf8a | 발신된 모든 메일은 메일아이디라는 고유값을 가지며, 메일 발신이 성공하면 메일아이디를 전달받습니다.
전달받은 메일아이디를 활용하여 발신취소 또는 수신상황 조회를 할 수 있습니다. |
| 3 | 유저 아이디 | userId | Y | Query | String | knoxportal | |
| 4 | 수신인 | recipients | Y | Body | String |
Response Parameter
| Properties | Attribute | Data Type | Sample Data | Note |
|---|
| API 호출 성공 여부 | result | String | success |
Sample
| Request | Response |
|---|
| /mail/api/v2.0/mails/20190623111845epcms1v2dd0e6bfd951d8f03bd75cd90afacdf8a/cancel?userId=knoxportal Content-Type : application/json; body : { "recipients" : ["sample.id@samsung.com","knoxportal@samsung.com"] } |
{ "result": "success" } |
| HTTP응답코드 | 에러코드 | 에러메시지 | 조치방안 |
|---|
| 400 | ML1001 | 필수값 중 입력되지 않은 값이 있습니다. | 모든 필수값이 입력되었는지 확인이 필요합니다. 또, 에러 메시지에 null인 parameter 명이 리턴된다면, 해당 값을 우선적으로 확인해야 합니다. |
| 400 | ML1002 | 사용자 정보가 존재하지 않습니다. | 호출 시 입력하는 URI 상의 Knox Id, 혹은 메일 발신자 knox 이메일 addresss가 정상적인지 확인이 필요합니다. |
| 404 | ML1003 | 요청하신 데이터가 존재하지 않습니다. | 호출 시 입력한 MailId에 해당되는 메일 데이터가 존재하지 않습니다. 발신취소 및 상태조회 하고자 하는 발신자/수신자 정보 확인이 필요합니다. |
/mail/api/v2.0/mails/deliverystatus/count?userId=Knox아이디
전달받은 메일 ID 리스트에 대해서, 각각의 전체적인 수신상태를 조회할 수 있습니다.
Request Parameter
| No. | Properties | Attribute | Mandatory | Parameter Type | Data Type | Sample Data | Note |
|---|
| 1 | 연계 시스템 아이디 | System-ID | Y | Header | String | C60LD0001 | |
| 2 | 유저 아이디 | userId | Y | Query | String | knoxportal | |
| 3 | 메일 아이디 리스트 | mailIds | Y | Body | String | 20190623111845epcms1v2dd0e6bfd951d8f03bd75cd90afacdf8a |
Response Parameter
| Properties | Attribute | Data Type | Sample Data | Note |
|---|
| 메일 아이디 | mailId | String | 20190409043651epcms1s110a09b3ca1b6c8d754ee1c28a182d8d5 | |
| 전체 카운트 | totalStatusCount | int | 8 | |
| 배달중 | sendingCount | int | 0 | |
| 개봉 | openCount | int | 1 | |
| 미개봉 | unopenCount | int | 7 | |
| 기타 | etcCount | int | 0 | |
| 발신취소 | sendCancelCount | int | 0 | |
| 발신취소 요청중 | sendCancelReqCount | int | 0 | |
| 발신차단 | sendBlockCount | int | 0 | |
| 발신실패 | sendFailCount | int | 0 | |
| 대외비 변환중 | drmProcessCount | int | 0 | |
| 대외비 변환 실패 | drmFailCount | int | 0 | |
| 예약 | reserveCount | int | 0 | |
| 예약 취소 | reserveCancelCount | int | 0 | |
| 알수없음 | unknownCount | int | 0 |
| HTTP응답코드 | 에러코드 | 에러메시지 | 조치방안 |
|---|
| 400 | ML1001 | 필수값 중 입력되지 않은 값이 있습니다. | 모든 필수값이 입력되었는지 확인이 필요합니다. 또, 에러 메시지에 null인 parameter 명이 리턴된다면, 해당 값을 우선적으로 확인해야 합니다. |
| 400 | ML1002 | 사용자 정보가 존재하지 않습니다. | 호출 시 입력하는 URI 상의 Knox Id, 혹은 메일 발신자 knox 이메일 addresss가 정상적인지 확인이 필요합니다. |
| 404 | ML1003 | 요청하신 데이터가 존재하지 않습니다. | 호출 시 입력한 MailId에 해당되는 메일 데이터가 존재하지 않습니다. 발신취소 및 상태조회 하고자 하는 발신자/수신자 정보 확인이 필요합니다. |
/mail/api/v2.0/mails/{mailId}/deliverystatus?userId=Knox아이디
전달받은 메일 ID에 대해서, 해당 메일의 수신인 별 수신 상태를 조회할 수 있습니다.
Request Parameter
| No. | Properties | Attribute | Mandatory | Parameter Type | Data Type | Sample Data | Note |
|---|
| 1 | 연계 시스템 아이디 | System-ID | Y | Header | String | C60LD0001 | |
| 2 | 메일 아이디 | {mailId} | Y | Path | String | 20190623111845epcms1v2dd0e6bfd951d8f03bd75cd90afacdf8a | 발신된 모든 메일은 메일아이디라는 고유값을 가지며, 메일 발신이 성공하면 메일아이디를 전달받습니다.
전달받은 메일아이디를 활용하여 발신취소 또는 수신상황 조회를 할 수 있습니다. |
| 3 | 유저 아이디 | userId | Y | Query | String | knoxportal |
Response Parameter
| Properties | Attribute | Data Type | Sample Data | Note |
|---|
| 이름 | name | String | KnoxPortal | |
| 직급 | position | String | Senior Engineer | |
| 영문 성명 | enName | String | KnoxPortal ServiceDesk | |
| 영문 직급 | enPosition | String | Senior Engineer | |
| 회사명 | company | String | 삼성SDS | |
| 부서명 | department | String | 사업그룹(Knox Portal) | |
| 영문 부서명 | enDepartment | String | Business Group | |
| 이메일 주소 | String | knoxportal@samsung.com | ||
| 유저 ID | userID | String | knoxportal | |
| 수신타입 | recipientType | String | TO | |
| 수신상태가 업데이트된 시간 | updateTime | Calendar | {"month":6,"year":2019,"dayOfMonth":7,"hourOfDay":5,"minute":48,"second":16} | |
| 개봉상태 | status | String | UNOPEN | |
| 수신자가 메일 개봉시 발신자에게 알림 여부 | needOpenNotify | boolean | false | |
| DL 메일주소 여부값 | isDLAddr | boolean | false |
| HTTP응답코드 | 에러코드 | 에러메시지 | 조치방안 |
|---|
| 400 | ML1001 | 필수값 중 입력되지 않은 값이 있습니다. | 모든 필수값이 입력되었는지 확인이 필요합니다. 또, 에러 메시지에 null인 parameter 명이 리턴된다면, 해당 값을 우선적으로 확인해야 합니다. |
| 400 | ML1002 | 사용자 정보가 존재하지 않습니다. | 호출 시 입력하는 URI 상의 Knox Id, 혹은 메일 발신자 knox 이메일 addresss가 정상적인지 확인이 필요합니다. |
| 404 | ML1003 | 요청하신 데이터가 존재하지 않습니다. | 호출 시 입력한 MailId에 해당되는 메일 데이터가 존재하지 않습니다. 발신취소 및 상태조회 하고자 하는 발신자/수신자 정보 확인이 필요합니다. |