Files
2026-05-29 17:49:25 +09:00

76 lines
2.8 KiB
Plaintext

= 메일
=== Knox REST API 연계 서비스 신청
Knox REST API 연계 서비스 신청은 <<_knox_rest_api_연계_서비스_신청,Knox REST API 연계 서비스 신청>> 항목을 참조한다.
=== Knox메일 연계 설정
Knox REST API 연계 서비스 신청이 되었다면, 발급받은 `system-id`, `token` 값을 설정한다.
.knox.properties (스테이지)
[source,properties]
----
knox.system-id=xxxxxxxxxxx
knox.token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
knox.address.prefix=openapi.samsung.net
knox.mail-service=/mail/api/v2.0
----
.knox.properties (운영)
[source,properties]
----
knox.system-id=xxxxxxxxxxx
knox.token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx // <1>
knox.address.prefix=openapi.samsung.net,openapi.w1.samsung.net,openapi.w2.samsung.net # <2>
knox.mail-service=/mail/api/v2.0
----
<1> 토큰 (comma(,)로 구분, 거점 순서와 동일)
<2> 거점 (국내, 구주, 미주)
=== KnoxMailService
Knox REST API 연계를 통해서 메일발신, 상태조회등을 하는 서비스로 주요 메서드는 KnoxMailService 인터페이스에 정의되어 있다.
KnoxMailService는 시스템에서 Knox 메일 서비스와 연계할 때 필요한 API들을 제공한다.
[source, java]
----
public interface KnoxMailService {
/**
* Knox 메일 발신
* @param sendMail 발신 메일 정보 (첨부파일정보(AttachFile) 포함)
* @return Knox 메일 아이디
*/
String sendMail(SendMail sendMail);
/**
* Knox 메일 발신
* @param sendMail 발신 메일 정보
* @param attachResources 메일 첨부가 파일 리소스일 경우
* @return Knox 메일 아이디
*/
String sendMail(SendMail sendMail, List<Resource> attachResources);
/**
* Knox 메일별 수신상태 조회
* @param mailIds Knox 메일 아이디 리스트
* @param sendMail 메일 정보
* @return Knox 메일 상태
*/
MailStatus[] getDeliveryStatusCount(List<String> mailIds, SendMail sendMail);
/**
* Knox 메일 수신인별 수신상태 조회
* @param mailId Knox 메일 아이디
* @param sendMail 메일 정보
* @return Knox 메일 수신인별 수신상태 정보
*/
Recipient[] getDeliveryStatus(String mailId, SendMail sendMail);
}
----
각각의 구현 메서드들은 Knox Rest 연계 서비스에서 요구하는 가이드대로 REST 형식을 갖추어 필요한 로직들을 수행한다.
자세한 API 스펙은 Swagger API 문서의 knox-mail-controller 항목을 참고한다. +
메일 발송 샘플 코드는 MailSampleController 소스코드를 참고한다.
IMPORTANT: Knox 연계 메일 발송을 위해서는 발신자/수신자 모두 Knox 계정이 존재해야만 테스트가 가능하다.