= 메일 === 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 attachResources); /** * Knox 메일별 수신상태 조회 * @param mailIds Knox 메일 아이디 리스트 * @param sendMail 메일 정보 * @return Knox 메일 상태 */ MailStatus[] getDeliveryStatusCount(List 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 계정이 존재해야만 테스트가 가능하다.