안녕하세요.  클라우드 기초 사용정보를 공유해드리는 클라우디 입니다.

오늘은 한국 퍼블릭 클라우드  서비스중 여러분들이 개발한 백엔드 서비스에서 사용자들에게 또는 관리자에게  SMS 단문문자 메시지 서비스 또는 메일을 발송 할떄 많이들 사용하는 네이버 클라우드의 SMS 발송 서비스인 SENS 알림 서비스메일발송 서비스인 Cloud Outbound Mailer 사용법에 대해 소개해드립니다.

네이버 클라우드 사이트 :  https://www.ncloud.com/

네이버 클라우드 서비스에 먼저 회원가입 후 클라우드 관리 콘솔 메뉴를 클릭해  클라우드 관리 화면으로 이동합니다.
네이버클라우드플랫폼(NCP= Naver Cloud Platform) 신규 회원가입

https://auth.ncloud.com/join

클라우드 콘솔 메인
https://console.ncloud.com/dashboard



대부분 퍼블릭 클라우드 서비스들의 알림서비스들이 비슷하지만 알림 서비스를 위해서는
클라우드에서 알림 서비스 신청 -> 인증키 발급 ->어플리케이션 적용 3단계 과정을 통해 알림서비스들을 여러분들의 어플리케이션이나 서비스에 적용 통합이 가능합니다.


1) 네이버 클라우드를 통해 SMS 발송하기

국내 클라우드 서비스 점유율 2위, 대한민국 클라우드 서비스 1위 인 네이버클라우드의 클라우드 기반 SMS 알림 서비스 SENSE 서비스는 Simple & Easy Notification Service의 줄임말로 주로 여러분의 서비스에서 회원가입시나 암호찾기 요청이나 고객문의가 발생시 또는 행사신청, 행사 알림 사전 노티 등 데이터 발생,이벤트 발생 시점에서 바로 사용자에게 SMS 핸드폰 알림 문자를 발송하고 싶을떄 여러분 서버에 연결해서 많이 사용하는 알림(Notificaiton) 서비스입니다. 

클라우드 콘솔화면  좌측 메뉴 Services>Application Services > Simple & Easy Notification Service(SENS) 메뉴를 클릭합니다.



Step1)알림 서비스(SMS)  프로젝트 생성하기
SENSE 알림서비스의 좌측 메뉴> Project를 클릭합니다.
상단 프로젝트생성하기 버튼을 클릭하여 신규 프로젝트를 생성합니다. 


-서비스 Type:  SMS
-이름 : 어떤 용도로 사용할지에 대한 간략한 이름
-설명: 설명

생성하기 버튼 을 클릭합니다.
생성된 프로젝트가 프로젝트 목록 에 표시됩니다.





Step2) SMS서비스를 위한 발신번호 등록 및 환경설정 
프로젝트 목록내에 서비스 항목의 SMS 버튼을 클릭 하여 상세 페이지로 이동합니다.

-발송하기 버튼을 클릭해 국가코드/발신번호를 등록합니다. (발신번호 등록 및 인증이 완료되어야 SMS서비스 이용이 가능합니다.)
-발신번호 등록 페이지로 이동해서 안내 절차에 따라 실제 보유중인 핸드폰 번호를 발신번호로 등록합니다. 
-발신번호 등록을 위한 서류인증 절차가 필요하며 서류등록후 영업일 기준 1-2일 내에 승인 처리가 됩니다.




-발신번호 등록이 완료된후 발송하기 버튼을 클릭하여 특정 전화번호로 특정 단문 메시지를 발송 테스트할수 있습니다. 

-SMS 이용한도 버튼을 클릭해서 이용한도를 확인하거나 추가 설정합니다.
-SMS 발신번호 등록 및 인증절차가 완료된 상태에서 등록된 발신번호를 이용해 콘솔 웹페이지에서 직접 문자 메시지를 보낼수도 있으며 보낸 문자 발송 이력 또한 아래와 같이 확인이 가능합니다. 




Step3) SMS 발송 Open API Key 확인하기
SENS서비스의 프로젝트 목록내에 서비스 ID 열쇠모양 키 아이콘을 클릭하면  Open API Key값을 확인하거나 복사할수 있습니다.
해당 키값을 복사해서 여러분이 개발한 Application의 환경변수 설정값으로 저장해서 사용하면 됩니다.






2)메일링 발송 서비스 신청하기 

네이버 클라우드는 Cloud Outbound Mailer 알림 서비스를 통해 위 동일 시나리오에서 사용자나 관리자에게 메일을 일괄,단건 등으로 메일발송이 가능합니다.
이번에는 SENS의 Cloud Outbound Mailer 좌측 메뉴를 이용해 사용자들에게 메일을 발송하는 서비스를 신청해보겠습니다.

여러분의 서비스에서 회원가입시나 암호찾기 요청이나 고객문의가 발생시 또는 행사신청,정기 메일링 발송, 행사 알림노티 등 데이터 발생 시점에서 바로 사용자에게 메일을 발송하고 싶을떄 서버에서 특정 이벤트가 발생했을때(고객문의)  메일로 이벤트 발생사실을 받아 보고 싶을떄 주로 많이 사용하는 메일 알림(Notificaiton)서비스입니다. 

클라우드 콘솔화면  좌측 메뉴 Services>Application Services > Cloud Outbound Mailer 메뉴를 클릭합니다.



Step1) 발송메일주소의 도메인주소 관리하기 
-메일을 발송하기 위해서는 발송자의 메일주소가 실제 존재해야하며 메일주소로 사용되는 도메인주소를 먼저 등록해줘야합니다.
-Cloud Outbound Mailer > Domain Management 메뉴를 클릭합니다.
-상단 도메인등록 버튼을 클릭하여  절차에 따라 관련 메일발송 도메인 주소를 입력하고 인증토큰을 생성 한후  발급된 인증토큰을 해당 도메인 주소를 관리하는 사이트에서  DNS서버의 네임서비스 항목중 TXT레코드를 하나만들고 인증키를 입력후 DNS서버 세팅을 완료합니다.







Step2) DNS 서비스에 TXT레코드 등록하기 
메일발송서비스를 사용하려면 먼저 서비스를 위한 도메인주소 확보가 선행되어야하며 보유중인 도메인주소가 있다면 위 절차대로 인증토큰을 발급한후 토큰값을 해당 도메인 주소 관리서버(DNS서버-도메인 구매업체 서비스) 서비스를 통해  DNS레코드(TXT유형)을 생성하고 인증키를 넣어 실제 여러분이 해당 도메인을 보유/사용하고 있는지에 대한 사전 인증하는 절차를 거치셔야합니다.


-기본적인 도메인 등록을 마치면 아래와 같이 목록에 표시됩니다.


-등록 목록에 해당 도메인을 체크하면 상세 페이지 화면이 확장되며 하기와 같은 주요사항에 대한 확인 및 주요 인증을 진행하면 됩니다.
-도메인 인증토큰:  보기 버튼을 클릭하여 해당 인증토큰을 여러분의 어플리케이션 환경설정변수값으로 관리합니다.
-SPF/DKIM 인증 상태 및 인증키값 확인하기  


-SPF : 발신자 정책 프레임워크(SPF) 레코드로 해당 도메인주소로 메일을 발송할때 DNS서버에 TXT레코드로 실제 메일발송할 주소(네이버클라우드메일발송서버)를 지정하여 

해당 도메인을 이용한 인증되지 않은 서버에서의 무분별한 메일발송을 차단합니다.상단 DNS TXT유형 레코드로 등록한 SPF 인증키값을 다시 확인가능하며 DNS서비스로 등록하여 인증이 완료되었는지를 확인가능합니다.


-DKIM: 도메인키 식별 메일(DKIM)은 메일 헤더에 디지털 서명을 추가하여 메일의 위변조 여부를 확인하여 인증 스팸 발송자 및 기타 악의적인 당사자가 합법적인 도메인을 가장하는 것을 방지하는 기능을 제공합니다. 

DKIM의 레코드의 값을 등록할때는 255자리값을 초과하는경우  두개의 동일한 이름의  mailer._domainkey TXT레코드를 만들고 우선순위도 동일하게 지정하고 키값을 두번 나누어서 등록하면 됩니다.

예를 들면  키값이 아래와 같다면 

v=DKIM1;k=rsa;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu8AUDITJwtnUIbKuDXwpQ30sNCpoaoKFsXVsrVgch
BRYe1fGJ6QvxOpQYRmpz30teKdMrt9PNA5mhAf3h/eKEymo3NKey9MLEY1I2YiOmDKmS3ccRqiDm+3PXGmdhgbOWJzQQ4DL2rvmlXssWlHVPcb92GgE5E
+wjoeLQnrsdM3KuWACDaMYTVw4Pg+a1rlNEXnMcNBmWPiIPnEcNYnGbGDFDFDFSasddfatR6waSRyZLgUqoblBnllhZX0zlMZm5w5sOc
+tqVfH1Ak2MsDr5z6WTZFl4LuJv2+tpDFDFDFSASDDdfdsadfddfd

mailer._domainkey.mixedcode.com  txt v=DKIM1;k=rsa;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu8AUDITJwtnUIbKuDXwpQ30sNCpoaoKFsXVsrVgchBRYe1fGJ6Qvx
OpQYRmpz30teKdMrt9PNA5mhAf3h/eKEymo3NKey9MLEY1I2YiOmDKmS3ccRqiDm+3PXGmdhgbOWJzQQ4DL2rvmlXssWlHVPcb92GgE5E+wjoeLQnrsdM3KuWACDaMYTVw4Pg+

mailer._domainkey.mixedcode.com  txt  a1rlNEXnMcNBmWPiIPnEcNYnGbGDFDFDFSasddfatR6waSRyZLgUqoblBnllhZX0zlMZm5w5sOc+tqVfH1Ak2MsDr5z6WTZFl4LuJv2+tpDFDFDFSASDDdfdsadfddfd


동일한 호스명(mailer._domainkey)을 txt타입으로 두개 만들고 위에 오리지널 키값을 두부분으로 나누어 첫번쨰 호스트명에는 v=DKIM1~~~Pg+ 까지 두번째 호스트 컨텐측값에는
나머지 값들~a1rlNEXnM을 입력하고 우선순위는 동일하게 0으로 하여 등록합니다.

DNS서버에 상기 레코드를 분할 등록 후 DKIM을 등록하고 인증이 완료되면 사용버튼을 클릭해 사용처리합니다.


참고 DKIM DNS 레코드 분할 등록 참고 링크)
https://docs.3rdeyesys.com/docs/application-services/cloud-outbound-mailer/domain-authentication-guide/
https://docs.3rdeyesys.com/docs/networking/dns/global-dns-configure-long-txt-record/