블로그 관리를 위한 MailGun 메일서버

Commento 사용을 위한 메일 서버를 찾다보니 얻어 걸린 메일 서비스이다. 한달 10000통까지는 무료이다. 주의할 점이라면, 자체 메일함을 제공하지 않기 때문에, 메일을 abc@abc.com으로 수신하려면 Route을 반드시 설정해서 다른 이메일로 전달하거나, 특정 url을 실행해서 타 시스템에 전달하거나 해야 한다. 즉 메일이 수신될 경우, mailgun이 설정된 route들을 실행하기만 하기 때문에, 보관하거나 하려면 별도의 설정을 해야 한다는 의미이다.

Domain 인증

Godaddy의 경우, Host에 아무 것도 쓰지 않을 경우에는 @을 기재해야 한다. Host가 값을 가질 경우는, 최상위 도메인은 쓰지 않고 생략해야 한다. 즉, 서브 도메인을 위해 CNAME 레코드를 email.abc.com에 대해 설정하려면, Host에는 email하고(email.abc.com에서 최상위 도메인 .abc.com을 제외한 부분) Value에는 mailgun.org로 설정하는 식이다. 또한 TTL은 최저값이 600초이다.

CNAME	email	mailgun.org	600 seconds	
MX	@	mxa.mailgun.org (Priority: 10)	600 seconds
MX	@	mxb.mailgun.org (Priority: 10)	600 seconds
TXT	smtp._domainkey	k=rsa; p=xxxxxx+xxxxxx	600 seconds

설정 후 도메인 설정 페이지인 https://app.mailgun.com/app/domains/abc.com로 가서 Domain Verification & DNS에 있는 Check DNS Records Now 버튼을 눌러서 인증이 잘 되었는지 확인한다.

SMTP 계정 확인

https://app.mailgun.com/app/domains/abc.com에 가보면 Domain Information 섹션에 Default SMTP LoginDefault Password가 있다.

Swaks로 이메일 송신 테스트

이메일 송신 테스트용 어플 Swaks을 써보자.

cd ~/Downloads
curl http://www.jetmore.org/john/code/swaks/files/swaks-20130209.0/swaks -o swaks
chmod +x swaks
sudo apt-get -y install perl
./swaks --auth --server smtp.mailgun.org:587 --au postmaster@abc.com --ap xxx-xxx-xxx --from postmaster@abc.com --to 받고싶은메일주소@gmail.com --h-Subject: "Hello" --body 'Testing some Mailgun awesomness!'

성공했다고 나오면 --to 받고싶은메일주소@gmail.com에 접속해서 테스트 메일이 잘 도착했는지 확인해보면 된다.

Route설정해서 이메일 수신 테스트

위에서 설명한 대로, MailGun의 경우 이메일 수신함이 없다. 대신에 수신되는 이메일이 있는 경우, 설정한 Route들을 차례대로 실행해준다. 그 Route들을 통해, 다른 이메일로 전달하거나, Web Hook(특정한 url)을 실행해주거나 할 수 있다. 일단 이메일 전달하는 것으로 테스트해보기로 하겠다.

  • 먼저 https://app.mailgun.com/app/routes 접속 후 Create Route 버튼을 누른다.
  • Expression TypeCatch All로, Actions에서는 Forward를 체크하고 텍스트 상자안에 이메일을 전달받을 다른 이메일 주소를 기재하고 하단의 Create Route 버튼을 다시 눌러서 저장한다.
  • 이제 보유한 다른 이메일에서 postmaster@abc.com로 메일을 보냈을 때, 그 이메일이 https://app.mailgun.com/app/logs에서 나타나고, 설정한 Route대로 전달되었는지 확인하면 된다. 잘 되었다면 https://app.mailgun.com/app/domains/abc.com/credentials에 가서 사용자 이메일을 추가하고, Route에 설정하고 하는 식으로 추가해 나가면 된다.

Related