[스타트업] 개인 도메인으로 이메일을 쓸 수 있게 해주는 메일건(Mail Gun) 서비스

메일건 서비스 (Mail Gun Service)

개인 도메인으로 이메일을 쓸 수 있게 해주는 서비스를 찾으세요?


많은 소규모 사업자들에게 도움이 되었던 네이버웍스(라인웍스) 서비스가 결국 유료화 되었습니다. 


네. 뭐 좋은 서비스로 돈 벌겠다는데 어쩌겠습니까.

이제 개별 도메인으로 라인웍스를 통해 메일을 사용하려면 1인당 약 6,000원/월의 요금이 발생하는 그렇고 그런 기업 협업 서비스가 되었습니다. 그 동안 다른 소규모 사업자 분들에게 네이버 웍스를 많이 추천해 드리고 세팅을 도와드렸었는데, 이제 기존에 쓰시던 분들은 2018년 정도 까지만 무료로 유지가 되고 이 후 부터는 비용이 발생할 예정입니다. 

뭐 그렇게 큰 비용은 아닙니다만, 그래도 가만히 뜯기는 비용이라 뭔가 억울한 기분이 들긴 듭니다. 

결국 네이버웍스를 대체하기 위해 열심히 구글링을 하던 도중 국내에 잘 알려지지 않은 재미난 서비스를 찾았습니다. 

김수빈이란 분의 블로그를 통해 알게 된 메일건 입니다.
출처 사이트 링크 ▼

아무튼 이 분의 사이트에서 메일건이란 서비스를 알게되고 위의 포스트 내용을 참고하여 메일건 서비스를 직접 적용해 보는 포스트를 공유해볼까 합니다. 

거의 대부분의 내용이 김수빈 님의 블로그에서 해결이 됩니다만, 카페24 도메인을 쓰는 경우와 메일 수신을 위헌 주요 dns 세팅이 추가되었기에 정리해 봅니다 .

필요한 준비물(?) 
  (1) 개인 도메인(이 포스트는 cafe24 구입 도메인 기준)
  (2) 메일을 받을 gmail 계정

1. Mail Gun Service 소개

먼저 메일 건 서비스를 알아야겠죠? 
메일건 사이트 주소 ▼

메일건 서비스는 email service for Developers 라고 되어있습니다. 네...개발자를 위한 서비스라고 하네요. 네. 나중에 사용을 하시다 보면 알겠지만, 대량 메일 발송 서비스와 발송된 메일에 대한 추적(Tracking), 통계(Analytics) 등의 서비스를 해주고 있습니다. 사실 서비스 개발 중 메일 발송이 필요할 때 API를 통해 메일을 발송 하기 쉽게끔, 한번에 대량으로 보낼 수 있도록 API를 제공해주는 서비스 입니다. 

뭐, 하지만 일단 회사 직원들 메일 수발신이 문제인데 뭐가 중요하겠습니까?

가격정책은 별거 없습니다. 
10,000 Emails / Month 까지는 무료 입니다.
즉, 사용자의 계정 수에 따라 가격을 측정하는 국내 서비스와는 다르게, 발송을 하는 메일의 수를 기준으로 됩니다. 개인 메일이나, 소규모 회사에서 사용하기에 괜찮을 것 같습니다. 10,000통이면 working day 20으로 나눠도 대략 500통 정도니까, 직원 5명이서 하루에 메일 100통씩 쓰는 것까진 무료네요. 또, 20,000통 발송 해도 5$ 정도 과금하게 됩니다. 

사이트에서 Pricing 텝으로 가시면 대략 비용을 산정해 볼 수 있습니다. 

아무튼 무료(?), 거의 무료(?)로 사용 할 수 있습니다. 

그럼 이제 가입과 세팅을 해보죠.

2. Mail Gun Service 가입

Sign-up 페이지로 이동하면 됩니다.


(optional) 표시가 있는 부분을 제외하고 입력하면 회원 가입이 됩니다. 

Company/Account Name : 회사명 또는 아무거나
Estimated Volume : 대략 얼마나 발송 할 것 같은지 ?
Your Name : 내이름
Work Email (로그인 ID) : gmail 계정 입력

Add Payment Info now : 지불 카드 정보를 입력하라는 것인데, 카드 정보를 입력하지 않으면 월 사용량이 100건으로 더 제한 됩니다. 나중에 입력해도 되니 일단 세팅부터 해보고 잘되면 입력해 보세요.

입력을 완료 후 Create Account 를 클릭하면 회원 가입이 되고 입력한 gmail 계정으로 인증 메일이 발송 됩니다.  사이트 상단에도 인증을 요구하는 메시지가 뜹니다.



Activate Mailgun Account 버튼을 메일에서 클릭해 주면 이제 회원가입은 끝났습니다. 

하지만, 바로 SMS 문자를 통해 인증코드를 전송해줄 테니, 인증하라고 합니다. 

네. 국제문자 받을 시간이네요. 받고 인증해주면 계정이 활성화 됩니다. 

2. 도메인을 등록해보자

이제 도메인을 등록해 보겠습니다. 로그인 첫화면은 복잡하니 상단 메뉴에서 Domains 를 클릭해 주세요. 


대충 요 녀석이 보이면 성공입니다. 뭔가 하나 Active 되어 있는데 그건, 개발자들이 쓸 내용이니 모른척 하면 됩니다.

위에 보이는 Add New Domain을 클릭합니다. 

네. 도메인을 입력 했더니 경고가 뜹니다. 서브도메인(subdomain) 사용을 강력하게 추천한다고 하네요. 서브도메인으로 써도 루트 도메인으로 메일을 보내느데는 상관없다고 합니다. 아마도 메인 도메인의 MX records는 나중에 다른 메일 서비스를 쓰게 될 경우 변경하게 될 수 있으니, mg 용으로는 별도 서브도메인을 쓰라는 것 같습니다. 

하지만, 어차피 그렇게 복잡하게 쓸 예정은 아닙니다. 일단 도메인 주소를 그대로 넣어버립니다. (예 : example.com)


네. 도메인을 등록하고 나면 위와 같은 주요 정보와 앞으로 해야할 내용을 알려줍니다. 

1. DNS 공급자에게 가서 2. 발송을 위한 DNS 설정, 3. 추적(Tracking)을 위한 DNS 설정, 4. DNS가 바뀔 때까지 최대 24시간을 기다리자고 합니다. 


3. DNS 정보 변경

바로 신청하시거나 변경하실 줄 알면 다행입니다만, 이런 어렵고 복잡한 내용은 개발자의 몫입니다. ㅠㅠ 

일단 카페24를 기준으로 설명하면, 로그인 > 나의서비스관리 > 도메인관리로 들어가면 도메인 부가 서비스 아래에 DNS 관리가 있습니다. 

DNS 관리를 클릭하면, 보유중인 도메인을 선택한 후 DNS 관리라는 작은 버튼을 클릭하여 위의 정보들을 수정할 수 있는 페이지로 이동됩니다.

위의 내용이 보이면 성공입니다. 제대로 오셨습니다. 
(보유중인 도메인이 여러개일 경우 정말 조심하세요. 멀쩡한 메일이 안될 수도 있습니다.)

먼저 카페24 순서대로 MX 서버를 변경하시면 됩니다. 

값에  mxa.mailgun.org 입력 후 우선순위 10
MX 레코드 추가버튼 클릭 후 mxb.mailgun.org 입력 후 우선순위 20 
이렇게 입력하시면 됩니다. 도메인주소 옆의 인풋박스는 무시!

다음은 별칭(CNAME) 관리입니다. 
CNAME 추가 버튼 클릭 후 email.yourdomain.com이 되게 입력 후
실제 주소에 mailgun.org 를 입력하면 됩니다. 

그리고 SPF 관리를 클릭 후 기존 도메인의 SPF를 수정합니다. 
수정 버튼을 클릭후 중간 내용에 include:mailgun.org 를 추가해서
전체 내용이 "v=spf1 include:mailgun.org ~all" 가 되면 됩니다. 

자 지금까지는 쉽게 끝났습니다. 

하지만 마지막으로 TXT 레코드의 추가입니다. 

카페24에서는 TXT 레코드를 추가할 때, 특수기호를 받아주지 않습니다.

어쩔 수 없이 이건 메일을 이용해서 변경 요청을 해야합니다. 

카페24 고객센터에서 도메인 관련 문의를 넣고


보유 도메인의 TXT 레코드를 아래 값으로 추가 부탁하시면 됩니다. 

호스트명 : krs._domainkey

값 :
k=rsa; p= 으로 시작하는 mailgun 사이트에 나와있는 내용 그대로 넣으면 됩니다. 


이제 설정이 기다리시면 됩니다. 


대략 하루가 지나면 설정된 도메인이 활성화 되어 있는 것을 확인할 수 있습니다.


만약 활성화가 되지 않았다면. 개인의 도메인을 클릭 하여 Check DNS Records Now 버튼을 클릭하면 적용된 내용을 확인할 수 있습니다.

만약 그래도 뭔가 확인되자 않다면, 어떤 부분에서 설정이 잘못되었는지 체크해볼 수 있습니다. 메일건에서는 입력되어야 할 값과 현재 값(Current Value)를 바로 비교해 줍니다.

4. 메일 계정 생성

이제 거의 모든 것이 끝났습니다.

메일건 사이트의 메뉴에서 Routes 메뉴로 이동해 주세요.

Routes 메뉴는 개인 도메인을 통해 메일건이 메일을 수신하게 되면 수신된 메일을 어디로 보낼 것인지를 설정하는 부분입니다. 


여기서 Create Route를 선택하면 루트를 설정할 수 있는 페이지로 이동합니다. 


위에서 부터 설명해 보겠습니다. 

(1) Expression Type
  • Catch All : 도메인으로 들어오는 모든 메일에 대해 Actions 를 취합니다. 
  • Match Recipient : 특정주소@도메인 으로 들어오는 메일에 대해 Actions를 취합니다. 
  • Match Header : Header Name과 Header Value가 입력한 값과 일치할 경우 Actions를 취합니다.
  • Custom : 특정주소@도메인과 일치할 경우 Actions를 취하는 것과 비슷하지만, 이를 직접 명령문처럼 입력해서 여러 도메인을 입력할 수 있습니다. 즉, 특정주소1@도메인과 특정주소2@도메인의 두 개 메일에 대해서 거를 경우 (match_recipient("특정주소@도메인") or match_recipient("특정주소2@도메인")) 을 입력하면 됩니다.

(2) Actions 
  • Forward : 위의 조건에 대해 포워딩할 이메일 주소, App 개발자의 경우 URL을 통해 메시지를 전달 받을 수 있는 경우 메시지를 받을 주소를 입력하면 됩니다. 간단하게 회원가입 때 이용한 gmail 계정을 사용해 보겠습니다.
  • Store and Norify : 위의 조건에 대해 단순 메시지 저장(3일동안)과 알림을 보낼 수 있습니다. 알림은 역시 App 개발자의 경우 callback 주소로 전달받을 수 있습니다. 
  • Stop : 우선순위에 따라 위 루트를 무시하는 기능 정도인 것 같습니다. 저도 써보지는 않아서...
(3) Priority : 우선순위, 같은 조건이라면 우선순위가 높은 Action에 대해 먼저 처리합니다.
(4) Description : 이 루트에 대한 부연 설명을 입력합니다.

우선 처음 사용하시는 분들은 Catch All, Forward to Gmail로 간단하게 설정하세요!
다 입력하고 Create Route를 생성하면 이제 개인 도메인으로 메일을 받을 수 있게 되었습니다. 

다른 메일 주소에서 메일을 한번 테스트 발송해보세요.

지메일로 메일이 정상적으로 들어오면 받는 메일 세팅이 끝났습니다!

5. 보내는 메일 설정

자 이제 마지막으로 개인 도메인으로 메일을 보내야겠죠?

메일건의 Domains 메뉴 에서 개인 도메인의 상세 페이지로 넘어옵니다. 

Domain Information이 보이고 상태와 IP주소 등이 보입니다. Default Password 옆에 보면 파란색으로 Manage SMTP credentials가 있습니다. (클릭)

SMTP Credentials for 개인 도메인 화면이 나타납니다. 
이미 기본 SMTP 설정이 postmaster@도메인 으로 설정되어 있습니다만, 이걸 이용해서 보낸다면 발송되는 메일의 발신자가 postmaster가 되어버립니다. 

New SMTP Credential을 클릭합니다. 


로그인 계정을 새로 만들고 비밀번호를 확인한 뒤 Create Credential을 합니다. 

자 입력한 계정으로 SMTP가 생성되었습니다. 

이제 GMAIL로 가서 환경설정으로 갑니다. 우측 상단 톱니 버튼을 클릭하면 있습니다. 

환경 설정 메뉴 중에서 "계정 및 가져오기"를 선택합니다. 



다른 주소에서 메일 보내기를 하면 됩니다! 

다른 주소에서 메일 보내기와 같은 줄에 있는 "다른 이메일 주소 추가"를 클릭합니다.


이름은 아무거나 이용해도 크게 상관없습니다. 

이메일 주소는 아까 생성한 SMTP 계정을 입력합니다. 도메인포함!

다음 단계


SMTP 로그인 설정입니다. SMTP 서버와 포트는 수정할 필요가 없고 

사용자 이름에 아까 생성한 SMTP 계정을 도메인과 함께 메일 주소 형태로 입력해 주세요.

그리고 비밀번호도 입력한 후 계정 추가를 하면 됩니다. 

그러면 마지막으로 입력한 메일로 인증번호가 발송되었으니 입력하라고 합니다. 

google -> 내주소@내도메인 -> 내 구글 계정 의 형태로 돌고 있으니 gmail 받은편지함을 열면 인증번호가 도착해있습니다. 

인증번호를 입력하면 이제 모든 설정이 끝났습니다. 

추가된 개인 메일주소를 기본으로 설정 하고 Gmail에서 메일을 쓰면 이제부터 개인 도메인의 메일로 발송됩니다. 



네..발송이 잘 되면 좋겠지만.. 안되죠?

반송 메일이 옵니다.

554 Free accounts are for test purposes only. Please upgrade or add the address to authorized recipients in Account Settings.

현재 이 계정은 test 목적으로만 쓸 수 있다고 하네요.

그렇습니다. Credit 카드를 입력하지 않았기 때문에 사용할 수 없습니다. =,.=;

6. 마무리

메일건으로 다시 돌아가서 Account Setting으로 갑니다. 

네. 간단하게 크래딧 카드를 입력하기만 해도 매달 10,000건의 이메일은 무료로 발송할 수 있다고 표시됩니다. 

해외결제 가능한 체크카드 한장 등록하시면 Unity Plan으로 바뀝니다. 

이제 정말 사용하시면 됩니다. 


댓글

  1. 안녕하세요.
    회사이메일서비스 때문에 구글링하다가 우연히 이 블로그를 보고 올려 주신 내용대로 시도하고 있는데 궁금한 점이 있어서 여쭤봅니다.
    위의 스크린캡쳐 내용 중에 TXT records 부분은 pic._domainkey로 되어 있는데 설명하는 부분은 krs._domainkey로 되어 있네요. mailgun에 등록된 제 DNS 설정에는 pic._domainkey로 되어 있는데 이대로 등록하는게 맞는지 아니면 krs._domainkey로 하는게 맞는지 궁금하네요. 혹시 어떤 것으로 등록을 하셨을까요?

    답글삭제
    답글
    1. 안녕하세요. 요새 정신없어서 블로그도 잘 못들어오고 그랬더니, 세팅이 가물가물 하네요. ㅎㅎ TXT 레코드에 서브 도메인은 메일건 웹 사이트에서 설정하라는 방식으로 가시면 되는데요. 제가 블로그 작성하던 시점에는 pic._domainkey로 보여지고 있는 거 같습니다만, mailto._domainkey.yourdomain.com 의 형태로 지정되어 레코드가 저장 되어야 합니다. 메일건에서 도메인 등록 하시고, Domain Verification & DNS 를 보시면 되요. 해당 페이지에서 메일건이 제시하는 레코드로 동일하게 등록하시면 되빈다.

      즉, 현재 제 메일 계정에는 mailto._domainkey 로 되어있습니다.

      삭제
  2. 안녕하세요 본문의 내용중에
    [값에 mxa.mailgun.org 입력 후 우선순위 10
    MX 레코드 추가버튼 클릭 후 mxb.mailgun.org 입력 후 우선순위 20
    이렇게 입력하시면 됩니다. 도메인주소 옆의 인풋박스는 무시! ]
    이 부분 말씀처럼 하는데 도메인 주소옆의 인풋박스를 무시하고 추가하니 정상적으로 추가가 안되버리네요 어떻게 해야할지 난감하여 글 남깁니다 혹 알고 계신다면 도움좀 부탁드리겠습니다.

    답글삭제
    답글
    1. 답이 많이 늦어졌네요. 카페24의 경우에 MX 레코드 추가시 서브도메인을 추가하지 않고도 되는데요. 근데 저도 요새 아는 선배 세팅 해주도 보니 입력이 안되는 것 같아서, 우선순위 10으로만 설정하고 정상적으로 세팅하였습니다. 중요한건 nslookup mx 테스트 하실때 제대로 뜨고 메일건 사이트에서 인증이 완료 된 것으로 뜨기만 하면 되니, 설정 하시고 난 뒤 기다려 보시면 됩니다. 메일건에서 체크하는데 소요되는 시간이 좀 있으니 반나절 ~ 하루 정도 지나서 체크해보시면 됩니다.

      삭제
  3. 안녕하세요. 지나가는 길에 올려주신 글과 참조로 알려주신 두개의 글 잘보면서 저희도 works mobile로 쓰던 메일은 지메일로 옮기려고 합니다. 메일건에서의 세팅은 알려주신대로 잘 따라 갔고 (본문의 카페24 대신 wix.com에서 설정을 통해 완료 했습니다.) 메일건 도메인란에서 사용중인 노메인 이름 앞에 Active로 활성화 되어있습니다. 문제는 지메일에서 '다른 주소로 메일 보내기'를 하면서 메일 주소를 추가하고 마지막에 메일 주소 확인 코드를 위해 smtp에 등록한 개인 도메인의 메일로 확인 메일을 보내는데, 'Diagnostic-Code: smtp; 550 5.7.1 Relaying denied' 라는 오류코드로 메일 전송 실패 하고 맙니다. 어디서 문제가 생긴건지 감이 잡히지 않아 질문드립니다.

    답글삭제
    답글
    1. 안녕하세요. 550이면 메일 서버에서 거절 당한건데요. 먼저, 발송하고자 하는 메일 주소로 메일건에 Routing 이 제대로 구성 되었는지 먼저 확인해보셔야 할 것 같네요. abc@domain.com 으로 지메일에서 메일을 발송하려고 하면 지메일에서는 해당 메일로 인증번호를 먼저 보내기 때문에 abc@domain.com 으로 메일건에서 제대로 메일이 수신되어야 합니다. 즉, SMTP 도 abc@domain.com 으로 비밀번호가 지정되어 있어야 하고, Route에도 abc@domain.com 을 포워딩 받을 주소(gmail)가 세팅 되어 있어야 합니다. 일단 Routing에서 Catch all -> 개인 지메일로 세팅해 보시고 다른 메일에서 도메인으로 메일 발송했을때 제대로 메일이 수신되는지 확인해 보세요.

      삭제
    2. https://www.gregjs.com/linux/2015/forwarding-mail-to-your-gmail-account-with-mailgun/
      가장 비슷한 문제 해결 사례인듯 하니 참고해 보세요~

      삭제
  4. 친절한 설명 감사합니다.
    아주 잘 쓰고있습니다. ^^

    답글삭제

댓글 쓰기