brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Jun 07. 2019

119.AWS SES 메일 발송법 3가지

AWS의 SES서비스를 이용해 메일을 발송해 보자

발송법 3가지를 알아보자


<1> SES  웹콘솔에서 메일 보내기

<2> Outlook에서 메일 보내기

<3> SDK를 이용해 서버에서 보내기

<4> 참고SES에서 DEDICATE IP 할당의 의미는 고정 SMTP IP 가 아니다.



<1> SES  웹콘솔에서 메일 보내기


도메인을 인증 받기와  제한 증가 요청하기 2가지를 하면 메일 발송이 가능하다.(필수)

2가지를 필수로 해야한다.


1. 웹콘솔에서 보내기


1) 도메인 인증받기 (필수)




2) 제한 증가 요청 하기 (필수)


제한 증가 요청시 해당 지역을 지정해 신청하게 되어 있다.

3곳이 있다.  

US East (N.Verginia) , US West(Oregon) , EU (Ireland)

이곳 중 사용하는 1곳을 지정해 신청한다.


완료되었다고 메일 온후 테스트하자.

24시간후 회신 메일이 온다.



3) 테스트하기



4) 참고

같은  AWS 계정으로   같은 지역  SES 에서 도메인  확인(Verify) 하면  같은 TXT, CNAME 값을 받는다.

SES > Domains 에서 도메인을 삭제하더라도 다시 생성하면 같은 TXT,CNAME이 받아진다.

한 번 설정했다면  DNS에 추가로 설정할 필요가 없다는 것이다.




2.  웹콘솔  Email Addresses에서 메일 보내기


1) Email Addresses > Verify a New Email Address  > 메일  입력하면 아래처럼 해당 메일로 확인 요청이 간다.

메일 수신이 가능한 메일에서 보낼수 있다.

메일 인증을 받아야 한다.

해당 메일 계정에서 아래 메일이 온다.  메일의 아래 링크를 클릭해 확인하면 된다.


2)  Sending Statistics에서  Request a Sending Limit increase 클릭해서 신청한다.  (필수)



링크 바로 가기

https://console.aws.amazon.com/support/cases#/create?issueType=service-limit-increase&limitType=service-code-ses

Service Limite Increase  에서   SES Sending Limits 를 신청해 승인을 받아야 한다.(필수)





<2> Outlook에서 메일 보내기


필요작업

도메인을 인증 받기와  제한 증가 요청하기 2가지 완료 필요 (필수)

추가 작업으로  메일 계정 생성과  아웃룩 설정이 필요하다.



1.  메일 계정 생성

SES > SMTP Settins > Create My SMTP Credntials  > ses-smtp- 형태의 계정이 생긴다.





SMTP username 과 SMTP Password 를  기록해 놓자. Outlook설정시 들어가는 계정과 암호이다.




2. Outlook설정하기.


1) 보내는 메일서버를 설정한다.   

SES 서비스의 오래곤의 경우 email-smtp.us-west-2 형태이다.

SES  지역에 따라 다르니 여기를 참조한다. https://docs.aws.amazon.com/ko_kr/ses/latest/DeveloperGuide/smtp-connect.html



2) 기타 계정설정에서  보내는 메일서버를 설정한다.

앞에서 만든 메일 계정과 암호을 입력한다.



3) 고급에서 보내는 메일서버(SMTP) 를 설정한다.

보내는 메일서버(SMTP)(o) : 587

암호화된 다음 연결 방식은 : TLS   설정한다.






<3> SDK를 이용해 서버에서 보내기


1.  SDK를  통해 메일을 보내려면, AWS SES시스템에 시크릿키가 필요하다.


1) 전송용 IAM 계정을 만들어야 한다.

SES서비스 > SMTP Settings  > Create My SMTP Credentials  클릭하면

메일 계정이 생성 된다.

IAM User Name : ses-smtp-user2

User SMTP Security Credentials  - Download Credentials 한다.


2) AWSAccessKey AWSSecretKey를 만들어야 한다.


3) ses-smtp-user2 계정에  정책할당한다.   

SESFullaccess권한을 할당한다.

IAM > Policies > ses 로 검색하여 클릭

계정에 정책을 할당한다.



기타

다음과 같이 발송만 가능하도록 제한된 권한을 주기를 권장한다.

AmazoneSesSendingAccess


{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ses:SendRawEmail",
"Resource": "*"
}
]
}



2.   EC2서버를 1대 설치하고 SDK를 설치한다.

EC2 서버 1대 만들기

SDK 설치 https://aws.amazon.com/ko/tools/#sdk

파이선 SDK 설치 https://github.com/boto/boto3#quick-start


AWS SDK for Python (Boto)를 사용하여 이메일 전송

https://docs.aws.amazon.com/ko_kr/ses/latest/DeveloperGuide/send-using-sdk-python.html


별첨1. 전체 가이드

https://docs.aws.amazon.com/ko_kr/ses/latest/DeveloperGuide/send-an-email-using-sdk.html


Amazon SES 전송 권한 부여 정책 예제

https://docs.aws.amazon.com/ko_kr/ses/latest/DeveloperGuide/sending-authorization-policy-examples.html




<4> 참고. SES에서 DEDICATE IP 할당의 의미는 고정 SMTP IP 가 아니다.


특별한 경우가 아니라면 할당 받을 필요는 없다.


1) DEDICATE IP 가  SMTP IP가 아니다.

DEDICATE IP 할당의 의미는  SES가  고정IP로 발송하는것을 ISP가 확인하는 의미이다.

ISP에서 볼떄  특정 IP에서 메일이 발송되는것을 확인하는 용도이다.


DEDICATE로 받은 IP를  SMTP로  입력해도  메일 발송이 안된다.



2) SES서비스에서 메일 발송의 지역에 따라 다르며, 오리곤은 아래를 SMTP로 설정해 사용한다.

email-smtp.us-west-2.amazonaws.com


SMTP설정해서   계정 설정 테스트를 하면 보내는 부분은 성공한다. - 오류가 안난다.

POP3는 따로 설정하지 않았음으로 오류가 나는건 정상이다.


감사합니다.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari