1. ---------- 1
AWS SES 로
이메일보내기 연습
https://fb.com/me.adunhansa
https://twitter.com/arahansa
http://adunhansa.tistory.com/
ABOUT
CONTACT
SOURCE
1
2. 1. 작성자 소개 2
-------------------------------------------------------------------
평소 정리를 즐겨합니다. 한 때
동영상강좌도
만들다보니.. 비실명과 만화캐릭터를 쓰네요
양해 부탁드립니다 ㅎㅎ
3. 알아본 것들 3
- AWS SES 의 설정
• 도메인 간의 설정
• 테스트 이메일
• 자바 이메일 코드
• AWS Credential 설정
• 보내지나?
4. 개요 4
• 최근에 어쩌다보니 인프라&클라우드서비스류들에
관심이 많이 생기게 되었습니다...
• 이메일을 보낼 일이 생겼었는데, 이메일을 보내는 법은
많지만 그 중 하나를 골라서 했던 작업을 정리가
안된채로 기록합니다... 잘못된 것이 있다면
얘기해주세요~
• 초초보 AWS 입문자 아라한사의, 그냥 의식의 흐름대로
적습니다.ㅎㅎ
5. 다 적고 나서 추가한 내용 5
• 다 적고 나니…한글 문서가 있다는 걸
뒤늦께 깨달았다.(털썩)..
https://docs.aws.amazon.com/ko_kr/ses/latest/
DeveloperGuide/Welcome.html
• 그래도 정리하면서 본 내용이 아까워서
적는다.
6. 도메인을 사자! 6
• 우선 도메인을 사겠습니다. 알아본 도메인 업체로는 1) GODADDY, 2)
FREENOM 3) 호스팅케이알이 있었는데
GODADDY 는 장기적으로 볼 때 비싼 것같고,
FREENOM(http://www.freenom.com/) 은 tk로 끝나는 도메인을 공짜로
살 수 있는데 이 슬라이드를 적기전에 메일설정 실패를 해서 ..
패쓰(해보실분은 해보셔도됩니다)
• 그래서 세번째로 호스팅케이알로 고르게 되었습니다. 도메인 사는
과정은 생략합니다.
7. 그러면 EC2를 생성해보자.
그전에!
7
• EC2를 생성하는 과정은 너무 뻔하니..이 또한 생략합니다.
http://pyrasis.com/aws.html 를 보시면 됩니다. 단 !
• 아 이메일 인증도 여기를 봅시다.
http://pyrasis.com/book/TheArtOfAmazonWebServices/Chapter27/01
여기서 중요한 점은 EC2 인스턴스를 만들기 전에 IAM 에서 SES를 위한
ROLE을 만들어서
미리 설정을 하겠습니다. 해당 관련 내용은
여기 (http://wildpup.cafe24.com/archives/673) 에 잘 나타나져 있습니다.
해당 블로그에 나온 대로 Roles 와 Users를 만들어줬습니다
8. 자 그럼 EC2생성을...! 하기전 8
• 아차, 근데 저의 경우는 블로그들과 뭔가 다른 것이.. EC2를
생성하면서 SES가 설정된 ROLE을 지정을 해도 이메일이
가지지가 않았습니다. 알고보니 Users 에서 key/secret을
생성해야했던 것이죠!! 그리고 이미 삽질이 다 끝났으니
적지만 여기서 Attach Policy 에서 SES policy를
추가해줬습니다.
9. 테스트부터.. 9
• 자 그럼 자바로 SES보내는 코드를 구해봅니다. 검색하니 금방 나옵니다.
https://docs.aws.amazon.com/ko_kr/ses/latest/DeveloperGuide/send-using-sdk-java.html
• 하지만 그대로 실행해보면 뭔가 문제가 발생합니다. Key 같은 것이 없다고
나옵니다. 소스를 보면 설정하는 곳이 없습니다.. 후..^^; 저는 맨첨에 EC2를
만들면서 role설정을 하면 자동으로 찾는 줄 알고 삽질을 ㅠㅠ 게다가 문서를 대충
읽고 저 client 객체에는 생성자 아규먼트가 필요가 없는 것인가!! 하고 생각을 ㅠㅠ..
아무튼. . 이왕 본 김에 소스의 주석에 나와있는 링크를 조금 자세히 보겠습니다.
10. AWS Credintials 를 알게 되었다! 10
• 아 그러니까.. SDK에 credentials을 줘야 하는데 여러가지 방법이 있다
이 이야기로군요… Root account aws access를 사용하는 대신에
IamUsers 를 사용하기를 권장하고 또 기본 provider chain 을 사용하기를
권장하는 군요..
11. 음 방법이 여러갠데 몇가지만;; 11
• Environment Variable 에 등록을
해보겠습니다;
12. env 등록해보기 -> 실패ㅠ 12
• env 로 등록해봤는데… 잘 안됐다-_-; 다른
방법도 많으니 굳이 recommend 가
아니더라도 다른 방법을 해보자.
13. Recommend 는 아니지만, 직접credential을
넣어줘보자;
13
• 소스 주석에 나온 를 잠깐 대충 읽어서
맨처음에는 이메일 클라이언트 생성자에
아무것도 못 넣는 줄 알았는데.. API 문서를
보니 그건 또 아니었다.
14. 14
• 아..흠… 아무튼 잠깐 테스트코드에 액세스키와 시크릿키를 적어주고
( IAMUsers에서 받았음) 돌려보면 성공.. (단 인증받지 않은 이메일로
보내는 경우에는 직접 아마존에 case를 문의해야합니다)
16. Amazon SES 설정 16
뭐랄까 소스파보기가 아니라 인프라같은
쪽은 보는 거라-_- PPT 에서는 쉽게 됐는데
막상 해보니 이상하게 삽질한 점도 좀
많았다… (첨에 서버에서만 되는 줄 알고
서버에 올려서 테스트를 한다던가..;;먼산)
아무튼 로컬에서도 잘 되니.. 빠른 테스트를
통해 빠른 구현!!
17. SES 메일 수신 17
• 으로 끝내려고 했는데-_- 메일을 보내면 응답을 받아야 한다;; 이왕
본거 메일 수신까지 알아보자!
• 구글에서 검색하면 친절한(?) AWS안내 페이지가 나온다.
18. 18
• 아…근데 찾아보니… 한글 문서가 있었다.
• (털썩)
https://docs.aws.amazon.com/ko_kr/ses/latest/DeveloperGuide/receiving-
email-concepts.html
• 찾아보면서 따라하면 그대로 메일도 온다.. 아 근데 내용이
암호화된건가.. 제목만 원문으로 보인다.. 이 이상은 나중에 하는 걸로;;
19. 한가지 더.. 19
• 이메일 많이 보낼때는 SES가 안 좋다고…
• 광복절 주말의 정리는 여기까지… 코딩하러 이만..