회사에서 sendmail서버 구축을 해야해. 실제로 구축을할까 어쩔까하는 중에 알게된 Amazon SES.
뭔가 서버를 굴리고 관리하고 하는 것이 수고가 많이 들어 그냥 돈주고 사기로 했다.
물론 먼저 Trial버전으로 체험을!
그리하여 시작된..Amazon SES 여정.
설정은 그리 복잡한 것은 없었다. 단...삽질들이 기다리고 있었다;
1. 첫 삽질
- 우리 환경이 Google Appengine 인데 GAE에서는 기본적으로 Javamail api로 sendmail이 SMTP설정을 gmail이외의 것으로 변경이 안된다. 그래서
구글신님께 확인을 해보니 역시나 비슷한 공감대를 가진 개발자분들이 친절하게 rawmessage로 전환하여 일반 http전송으로 메일 보내기를 구현해놓으셨다. 감사히 가져오자.
URL : http://www.radomirml.com/blog/2012/07/31/amazon-ses-service-with-java-on-gae/
- 위 블로그의 내용에 따라 http client와 GAEConnectionManager만 내 lib에 추가하면 잘 동작...하는 줄 알았으나..
2. 두번쨰 삽질
- SES 설정시 만들어 놓은 SMTP Credential의 ID 와 KEY로 테스트를 진행하였더니
Status Code: 403, AWS Service: AmazonSimpleEmailService, AWS Request ID: xxxxxx, AWS Error Code: SignatureDoesNotMatch, AWS Error Message: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.
위와 같이 애러가 뙇!
다시 구글신님과 함께 대토론...
원인은 Amazon의 불친절한 설명때문!!!
Credential이용시 SES설정할떄 만든 SMTP Credential을 이용하는 것이 아니라 아래의 URL을 들어가서 만드는 Amazon 기본 Access Key를 이용해야한다는 사실;;
http://docs.aws.amazon.com/ses/latest/DeveloperGuide/get-aws-keys.html
나 이외의 많은 개발자들이 이 문제로 인해 스택오버플로가 아닌 히트오버플로 상태였다!
정답을 찾아준 URL : https://forums.aws.amazon.com/thread.jspa?threadID=88463
Amazon 설명 좀 고쳐!!...주세요
3. 마지막 세번쨰 삽질.
위 문제들을 해결하고 기도하는 마음으로 메일 발송!
그랬더니...
Email is not verified.
가 뙇!!!
아놔....그래서 또 구글신님과 불타는 대....화.....를 진행했으나 찾을 수 없는 답....
하지만 등잔밑이 어두운 법..
Amazon SES 의 정상 사용을 위해서는 Amazon팀의 Production Access권한을 신청해서 승인 받아야 정상 사용 가능하다고;;;
아놔 진짜;
일단 그래서 현재 승인 신청 상태.
일단 분노를 잠재우기 위해 이렇게 삽질 후기를 남김.
아...내일 다시해보자~
업데이트 : 글쓴 다음날.
Amazon님이 아래와 같은 메일을 주신후에 쌩쌩 잘됨. 쓰시는 분들 저처럼 삽질하지마시고 신청하시고 아래처럼 기다려 보아요~
Dear Amazon SES customer:
Congratulations! You have been granted production access to Amazon Simple Email Service. ...... 중략