내 도메인에서 이메일 보내기

Mocco는 여러분을 대신해 이메일을 보냅니다. 상태 페이지 구독자가 주소를 확인하거나 인시던트 소식을 받을 때, 누군가 피드백 보드에서 이메일로 투표할 때, 팔로우한 게시물이 출시됐을 때입니다. 도메인을 추가하기 전에는 이 메일이 Mocco 주소에서 프로젝트 이름을 달고 ShowYourTime via Mocco처럼 나갑니다. 내 도메인을 쓰면 ShowYourTime <help@showyourti.me>처럼 여러분의 주소에서 나가고, 여러분의 도메인으로 서명되므로 메일 서비스가 믿고 받습니다.

세 단계면 됩니다. 도메인을 추가하고, DNS 레코드 몇 개를 등록하고, 프로젝트마다 보낼 주소를 고릅니다.

필요한 것

  • Amazon SES로 이메일을 보내는 Mocco 서버. Mocco가 운영하는 서버는 이미 그렇습니다. SES가 없는 자체 호스팅 서버에서는 Email → 발신 도메인(Sending domains)에 SES 드라이버가 필요하다고 나옵니다.

  • 워크스페이스의 소유자 또는 관리자 권한. 멤버는 도메인과 발신자를 볼 수 있지만 바꿀 수는 없습니다.

  • 도메인의 DNS를 바꿀 수 있는 권한(예: Cloudflare).

1. 도메인 추가하기

워크스페이스 사이드바에서 Email → 발신 도메인을 엽니다. 도메인 추가(Add a domain)에 showyourti.me 같은 도메인을 입력하고, MAIL FROM 하위 도메인은 bounce 그대로 둡니다. 도메인 추가(Add domain)를 누릅니다.

도메인은 워크스페이스에 속하므로 그 안의 모든 프로젝트가 같은 도메인에서 보낼 수 있습니다. 레코드가 확인될 때까지 도메인은 확인 중(Pending)입니다. 워크스페이스 하나에 발신 도메인은 최대 5개이고, 하루에 10번까지 추가할 수 있습니다.

Mocco는 Mocco 자신의 도메인과, 다른 워크스페이스가 이미 인증한 도메인(또는 그 상위·하위 도메인)을 거부합니다. 다른 워크스페이스가 도메인을 추가만 하고 인증하지 않았다면, Mocco는 도메인이 여러분의 것임을 증명하라고 안내합니다. 안내하는 TXT 레코드(_mocco-verify.<내 도메인>)를 등록한 뒤 도메인을 다시 추가하세요.

2. 레코드 등록하기

도메인 아래의 DNS 레코드(DNS records)에 DNS에 추가할 내용이 나옵니다. 각 줄에는 레코드의 유형, 이름(대부분의 DNS 서비스가 원하는 짧은 이름, 그 아래에 전체 이름), 값이 있고 각각 복사 버튼이 있습니다.

유형이름값
CNAME (×3)<token>._domainkey<token>.dkim.amazonses.com필수
MXbouncefeedback-smtp.ap-northeast-2.amazonses.com, 우선순위 10권장
TXTbouncev=spf1 include:amazonses.com ~all권장

CNAME 레코드 세 개는 DKIM입니다. 메일 서비스가 여러분의 도메인에서 온 메일이 그 도메인으로 서명됐는지 확인하게 해 주며, 이것만으로 도메인이 인증됩니다. bounce의 MX와 TXT 레코드는 반송 메일이 여러분의 하위 도메인으로 돌아오게 하고, SPF도 여러분의 도메인과 맞춰 줍니다.

Cloudflare에서는 도메인의 DNS → Records를 열고 줄마다 Add record를 누릅니다. 유형을 고르고 이름과 값을 붙여 넣은 뒤 Proxy status를 DNS only(회색 구름)로 둡니다. 프록시된 CNAME은 DKIM을 깨뜨립니다. MX 레코드의 우선순위에는 10을 입력합니다.

루트의 MX와 SPF 레코드는 그대로 두세요. Google Workspace(또는 다른 메일 서비스)가 이미 도메인의 메일을 받고 있어도 달라지는 것은 없습니다. 새 MX와 SPF 레코드는 도메인 자체가 아니라 bounce에 있습니다.

DMARC. 레코드 아래에서 Mocco가 도메인의 _dmarc 레코드를 읽습니다. 이미 게시하고 있다면 그렇다고 알려 줍니다. 그대로 두고, 두 번째 레코드는 추가하지 마세요. DMARC 레코드가 두 개면 둘 다 무효가 됩니다. 없다면 _dmarc에 TXT 레코드로 v=DMARC1; p=none; rua=mailto:<your address>를 추가하라고 제안합니다. <your address> 자리에는 여러분의 주소를 넣으세요. 보고서에 문제가 없으면 p=quarantine으로 올려도 됩니다.

3. 확인하기

Mocco는 확인 중인 도메인을 10분마다 확인하므로 기다려도 되고, 지금 확인(Check now)을 눌러도 됩니다(도메인마다 1분에 한 번). CNAME 레코드가 확인되면 도메인이 인증됨(Verified)이 됩니다. 보통 레코드를 등록하고 몇 분이면 되며, 72시간 안에 찾지 못하면 실패(Failed)가 됩니다. 레코드를 등록한 뒤 지금 확인을 누르면 인증을 다시 시작합니다. 이때 새 레코드가 나올 수 있습니다.

4. 프로젝트마다 발신자 고르기

프로젝트의 Inbox를 열고 Settings → 이메일 발신자(Email sender)로 갑니다. 도메인을 고르고(인증된 도메인만 나옵니다), help 같은 주소를 입력합니다. 이름과 **회신 주소(Reply-To)**는 선택 사항입니다.

  • 이름은 받는 사람에게 보이는 이름입니다. 비워 두면 프로젝트 이름을 씁니다.

  • 회신 주소는 답장이 가는 곳입니다. 비워 두면 답장이 발신 주소로 갑니다. 그 주소에서 운영하는 메일함이 받습니다.

카드에서 ShowYourTime <help@showyourti.me>처럼 헤더를 미리 볼 수 있습니다. 발신자 저장(Save sender)을 누르면, 그때부터 프로젝트가 보내는 모든 이메일이 이 주소에서 나갑니다. Mocco 주소 사용(Use Mocco's address)을 누르면 발신자를 지웁니다.

아직 인증된 도메인이 없으면 카드에 발신 도메인으로 가는 링크가 나옵니다.

한도와 일시 중지

  • 하루 한도. 워크스페이스는 자기 도메인에서 하루에 이메일을 최대 1,000통 보냅니다. 발신 도메인에 지난 24시간 동안 보낸 양이 나옵니다. 한도를 넘으면 수가 줄어들 때까지 Mocco 주소에서 나갑니다.

  • 반송과 스팸 신고에 따른 일시 중지. 지난 7일 동안 워크스페이스가 자기 도메인에서 200통 이상 보냈고, 그중 5%를 넘게 반송되거나 0.1%를 넘게 스팸으로 신고되면 그 도메인들의 메일이 일시 중지됩니다. 발신 도메인에 일시 중지가 표시됩니다. 그동안 메일은 Mocco 주소에서 나가며, Mocco 운영자가 살펴본 뒤 재개합니다.

어느 쪽도 메일을 멈추지는 않습니다. 메일이 나가는 주소만 바뀝니다.

레코드가 깨졌을 때

Mocco는 인증된 도메인을 하루에 한 번 확인합니다. 확인이 실패하면 도메인에 경고가 뜨지만 메일은 계속 나갑니다. 한 번의 조회 실패는 DNS가 잠깐 흔들린 것일 때가 많습니다. 하루 뒤 확인도 실패하면 도메인이 인증 해제됨(Revoked)이 되고, 그 도메인에서 보내던 프로젝트는 레코드가 돌아올 때까지 Mocco 주소에서 보냅니다. 레코드를 다시 등록하고 지금 확인을 누르면 도메인이 인증됨으로 돌아오고 발신자도 저절로 다시 쓰입니다.

한 번도 인증되지 않고 일주일 동안 실패로 남은 도메인은 삭제됩니다.

도메인 삭제하기

삭제(Remove)는 먼저 확인을 구하며, 그 도메인에서 보내는 프로젝트를 보여 줍니다. 삭제하면 그 프로젝트들의 발신자가 지워져 다시 Mocco 주소에서 메일을 보냅니다. 삭제한 뒤에는 도메인의 DKIM, MX, SPF 레코드를 지워도 됩니다. 나중에 같은 도메인을 다시 추가하면 새 레코드를 등록해야 합니다.

도메인을 추가하고, 인증하고, 삭제한 일과 발신자를 바꾼 일은 모두 감사 로그에 남습니다.

에이전트에서

Mocco에 연결된 에이전트(에이전트에 Mocco 연결하기)도 같은 일을 할 수 있습니다. mocco_email_domains_list는 도메인을 읽고(멤버 누구나), mocco_email_domain_add는 도메인을 추가하고 레코드를 알려 주며, mocco_email_domain_verify는 지금 확인하고, mocco_email_domain_remove는 도메인을 삭제하고, mocco_email_sender_set은 프로젝트의 발신자를 정하거나 지웁니다. 바꾸는 도구는 처음 쓸 때 따로 권한을 요청합니다. Send email from your domains as you: add, check and remove sending domains and choose each project's sender.