> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.claw-ops.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.claw-ops.com/_mcp/server.

# 도메인 연결하기

> 이메일을 보내려면 먼저 도메인 소유를 증명해야 합니다. 도메인 등록, CNAME 추가, 검증 확인, 수신 켜기까지 안내합니다.

ClawOps 이메일은 **고객이 소유한 도메인**으로 나갑니다. `no-reply@example.com` 처럼 받는 사람이 아는 주소로 보내려면, 그 도메인이 정말 내 것임을 DNS 로 증명해야 합니다.

절차는 세 단계입니다.

1. 콘솔이나 API 로 **도메인을 등록**하면 CNAME 레코드 3건이 발급됩니다.
2. 그 레코드를 도메인 DNS 에 **그대로 추가**합니다.
3. **검증을 확인**하면 `verified` 가 되고, 그때부터 발송할 수 있습니다.

등록만으로는 발송할 수 없습니다. 도메인이 `pending` 인 동안 그 주소로 보내면 `403 email_domain_not_verified` 입니다.

## 1. 도메인 등록

[콘솔의 발신 도메인](https://platform.claw-ops.com/email-domains)에서 **도메인 등록**을 누르고 도메인을 입력합니다. 이메일 주소가 아니라 **도메인만** 넣습니다.

![도메인 등록 화면](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/clawops.docs.buildwithfern.com/987fa0fbe6f83979238b0596a9b09590ac731dc3280c4b08cd4da64d25686ec6/assets/email/domain-register.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260909%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T184324Z&X-Amz-Expires=604800&X-Amz-Signature=51f67fc291f474262e8aaabd556d796b8a58730ed4f0897b53099730a97f5c3f&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

하위 도메인도 됩니다. `example.com` 과 `mail.example.com` 은 **별개**라, 둘 다 쓰려면 각각 등록해야 합니다.

업무 메일을 Google Workspace·Microsoft 365 로 쓰고 있다면 루트 도메인 대신 `mail.example.com` 같은 **하위 도메인을 따로 등록**하는 편이 안전합니다. 뒤에 나오는 수신 기능이 루트 도메인의 메일 흐름을 바꾸기 때문입니다.

API 로 등록할 수도 있습니다.

```bash title="cURL"
curl -X POST "https://api.claw-ops.com/v1/accounts/YOUR_ACCOUNT_ID/email-domains" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "domain": "mail.example.com" }'
```

응답의 `dnsRecords` 3건이 아래에서 심을 CNAME 입니다.

등록은 **멱등**입니다. 같은 계정이 같은 도메인을 다시 등록하면 새로 만들지 않고 기존 항목을 `200` 으로 돌려줍니다. 새로 만들어진 경우에만 `201` 입니다.

한 도메인은 ClawOps 전체에서 한 계정만 소유합니다. 다른 계정이 이미 등록했다면 `409` 입니다.

## 2. CNAME 레코드 추가

등록하면 CNAME 3건이 나옵니다. 이 값을 도메인 DNS 에 그대로 추가하세요.

![확인 대기 상태 — 심어야 할 레코드와 회수 마감이 함께 보입니다](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/clawops.docs.buildwithfern.com/dea0887286a07a83e55f9cc9459fc561e70fee162bb1e6e4198aa517727558dc/assets/email/domain-pending.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260909%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T184324Z&X-Amz-Expires=604800&X-Amz-Signature=bc49db483456944857a8a4660ccb94831c1d5685c794331dee1192173b1805e4&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

**72시간 안에 소유를 증명하지 않으면 등록이 회수됩니다.** 그 도메인은 다른 계정이 등록할 수 있게 됩니다. 화면에도 만료 시각이 표시됩니다.

### 이름 뒤에 도메인이 붙는 DNS 서비스

가비아·Cloudflare 등 상당수 DNS 서비스는 레코드 이름 뒤에 도메인을 **자동으로 붙입니다.** 화면에 나온 이름을 통째로 넣으면 `..._domainkey.mail.example.com.mail.example.com` 처럼 도메인이 두 번 들어가고, 검증은 영원히 끝나지 않습니다.

그런 서비스에서는 이름에서 **뒤쪽 도메인을 뺀 앞부분만** 입력하세요.

|                  | 입력할 값                                   |
| ---------------- | --------------------------------------- |
| 화면에 표시된 이름       | `muqghfeb…._domainkey.mail.example.com` |
| 도메인이 자동으로 붙는 서비스 | `muqghfeb…._domainkey`                  |

값(`…dkim.amazonses.com`)은 어느 쪽이든 그대로 넣습니다.

### AI 에게 맡기기

DNS 서비스마다 화면이 달라서 어느 칸에 무엇을 넣는지 헷갈린다면, 콘솔의 **AI 에이전트 프롬프트 복사** 를 누르세요. 아직 심지 않은 레코드와 위의 주의사항이 담긴 문장이 복사됩니다. 그대로 Claude Code·Cursor·ChatGPT 에 붙여 넣으면 됩니다.

DNS API 에 접근할 수 있는 에이전트(예: Cloudflare MCP 를 붙인 Claude Code)라면 **직접 추가**하고, 그렇지 않으면 쓰시는 서비스의 화면 기준으로 안내합니다. 마지막에 `dig` 로 확인하는 것까지 문장에 들어 있습니다.

**AI 에게 레코드 값을 만들어 달라고 하지 마세요.** DKIM 토큰은 ClawOps 가 발급한 고유한 값이라 추론이 불가능합니다 — 「DKIM 레코드를 설정해 줘」처럼 열어서 물으면 그럴듯한 가짜 값을 지어내고, 그걸 심으면 **검증이 영원히 끝나지 않습니다.** 복사 버튼이 만드는 문장에는 실제 값과 「새로 만들지 말라」는 지시가 함께 들어 있습니다.

## 3. 검증 확인

DNS 가 퍼진 뒤 **검증 상태 확인**을 누르면 상태가 갱신됩니다. `검증됨` 이 되면 그 도메인의 주소로 발송할 수 있습니다.

![검증된 도메인 — 확인이 끝난 절은 접혀서 「지금 문제가 없다」만 보입니다](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/clawops.docs.buildwithfern.com/6eb6856a89e96bdf4906f4ae444d9f27f9fad337699a0f7d2ac8c6fd1da06c4b/assets/email/domain-verified.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260909%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T184324Z&X-Amz-Expires=604800&X-Amz-Signature=adb9d641fadb05ea92e79282a0a9e0bdbbc4e5e22cd3d2fdaf97cd7d44b05377&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

DNS 전파는 보통 수 분에서 수 시간이 걸립니다. 대기 중에는 `pending` 이 그대로이므로 몇 분 간격으로 다시 확인하세요.

```bash title="cURL"
curl -X POST "https://api.claw-ops.com/v1/accounts/YOUR_ACCOUNT_ID/email-domains/YOUR_DOMAIN_ID/verification" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Length: 0"
```

이 API 는 본문이 없지만 **`Content-Length: 0` 헤더는 필요합니다.** 본문도 이 헤더도 없는 POST 는 ClawOps 에 닿기 전에 게이트웨이가 `411 Length Required` 로 거절합니다. 대부분의 HTTP 클라이언트와 SDK 는 자동으로 붙이지만 `curl -X POST` 는 붙이지 않습니다.

### 확인 대기가 끝나지 않을 때

| 증상                      | 확인할 것                                                                                                                                     |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| 레코드를 넣었는데 계속 `확인 대기`    | 이름에 도메인이 두 번 들어갔는지 (위의 자동 추가 문제)                                                                                                          |
| 값 끝의 점(`.`)             | 서비스에 따라 `…amazonses.com.` 처럼 끝점을 요구하거나 금지합니다. 다른 레코드의 표기를 따르세요                                                                            |
| 3건 중 일부만 넣음             | **3건 모두** 있어야 검증됩니다                                                                                                                       |
| 한참 뒤 `검증 실패` 로 바뀜       | CNAME 이 사라졌는지 확인하세요. 레코드가 없어지면 상태가 내려갑니다                                                                                                  |
| `dig` 로는 안 보이는데 콘솔은 확인됨 | 공개 DNS(`8.8.8.8` 등)가 **레코드를 만들기 전의 응답을 캐시**하고 있을 수 있습니다. 와일드카드(`*.example.com`)가 있는 도메인에서 특히 그렇습니다 — 권위 네임서버에 직접 물어보세요(`dig MX 이름 @권위NS`) |

검증에 일시적으로 실패해도 **이미 `verified` 인 도메인이 우리 쪽 장애로 내려가지는 않습니다.** 공급자에 연결하지 못하면 `503` 이고 저장된 상태는 그대로입니다.

## 4. 도달률 높이기 (권장)

여기까지만 해도 **발송은 됩니다.** 이 단계는 보낸 메일이 스팸함 대신 받은편지함에 닿을 확률을 높입니다.

Gmail 은 한 도메인이 하루 5,000통을 넘기면 SPF 와 DKIM 을 **둘 다** 요구합니다. DKIM 은 2단계에서 이미 섰고, SPF 는 아래 **반송 주소**를 심어야 섭니다.

### 반송 주소

메일이 반송될 때 돌아가는 주소입니다. 기본값은 ClawOps 의 도메인(`amazonses.com`)인데, 아래 두 레코드를 심으면 내 도메인이 됩니다. 반송 메일 헤더에서 ClawOps 가 사라지고, SPF 인증이 함께 섭니다.

콘솔의 **도달률 (권장)** 절에 실제 값이 나옵니다.

![도달률 절 — 확인이 끝난 절은 접히고, 아직 심을 것만 펼쳐집니다](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/clawops.docs.buildwithfern.com/4e05d717a4644d2b2c0911e746cfcf157a77c8df8d4789dc8517e954ff47dfb5/assets/email/domain-deliverability.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260909%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T184324Z&X-Amz-Expires=604800&X-Amz-Signature=02c69b100600e72411dfee8555d9c6e47032960eba19d90eb5a0a890a2c11382&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

| 타입    | 이름       | 값                                            | 우선순위 |
| ----- | -------- | -------------------------------------------- | ---- |
| `MX`  | `bounce` | `feedback-smtp.ap-northeast-2.amazonses.com` | `10` |
| `TXT` | `bounce` | `v=spf1 include:amazonses.com ~all`          | —    |

* `bounce` 는 **반송 전용 이름**입니다. 다른 용도로 쓰지 마세요.
* 이 이름에는 **MX 가 정확히 하나**여야 합니다. 둘 이상이면 설정이 실패합니다.
* TXT 값에 **따옴표를 직접 붙이지 마세요.** 대부분의 DNS 서비스가 알아서 감쌉니다 — 직접 붙이면 이중이 되어 조용히 무효가 됩니다.

심고 나면 콘솔에 `적용됨` 이 표시됩니다. API 로는 `mailFromStatus` 입니다.

| `mailFromStatus` | 뜻                      |
| ---------------- | ---------------------- |
| `null`           | 아직 시도한 적이 없음           |
| `pending`        | 레코드를 찾는 중              |
| `verified`       | 반송 주소가 내 도메인으로 섭니다     |
| `failed`         | 레코드를 찾지 못해 기본값으로 남았습니다 |

**`pending` 이나 `failed` 여도 메일은 정상 발송됩니다.** 반송 주소만 ClawOps 기본값으로 돌아갈 뿐입니다. 발송 가능 여부는 `status` 로 판단하세요.

### DMARC

도메인 전체의 인증 정책입니다. **값은 고객이 정합니다** — ClawOps 는 시작점을 제안하고, 심었는지 읽어서 알려드릴 뿐입니다.

| 타입    | 이름       | 값                   |
| ----- | -------- | ------------------- |
| `TXT` | `_dmarc` | `v=DMARC1; p=none;` |

`p=none` 은 **감시만 하고 아무 조치도 하지 않는** 정책입니다. 여기서 시작해 `p=quarantine`(스팸함으로), `p=reject`(거부)로 단계를 올리는 것이 표준 절차입니다 — 처음부터 `reject` 로 가면 아직 인증이 정렬되지 않은 다른 발송 경로(사내 메일, 다른 SaaS)의 메일이 그날로 거부됩니다.

인증 실패 리포트를 받으려면 값 뒤에 `rua=mailto:주소` 를 덧붙이세요.

**`aspf=s` 를 넣지 마세요.** 위에서 심은 반송 주소가 **아무 효과도 내지 못합니다.**

반송 주소는 `bounce.` 하위 이름이라 From 주소와 정확히 같지는 않습니다. DMARC 의 SPF 정렬이 기본값(relaxed)이면 상위 도메인이 같아 통과하지만, `aspf=s` 는 엄격 일치를 요구해 정렬이 깨집니다.

그런데 이때 **아무 증상도 없습니다** — 메일은 계속 나가고 DKIM 으로 DMARC 도 통과합니다. 그래서 ClawOps 가 이 값을 읽어 콘솔에서 알려드립니다(`dmarcStatus` 가 `spf_strict`).

이미 상위 도메인에 DMARC 를 두셨다면 하위 도메인은 그 정책을 **물려받습니다.** 그런 경우 ClawOps 는 `_dmarc` 레코드를 안내하지 않습니다 — 안내대로 `p=none` 을 심으면 물려받은 정책이 그 하위 도메인에서만 무력화되기 때문입니다.

## 5. 수신 켜기 (선택)

받는 사람이 **답장을 보내면 그것을 받고 싶을 때** 수신을 켭니다. 발송만 할 거라면 이 단계는 건너뛰어도 됩니다.

수신은 도메인 검증을 마친 뒤에만 켤 수 있습니다. 켜면 MX 레코드가 나오고, 그 레코드를 DNS 에 추가해야 실제로 메일이 들어옵니다.

**MX 는 그 도메인의 메일 수신처를 바꾸는 레코드입니다.**

* 루트 도메인(`example.com`)에 얹으면 그 도메인의 **모든** 메일이 ClawOps 로 옵니다. Google Workspace·Microsoft 365 를 쓰고 있다면 업무 메일이 끊깁니다 — 수신 전용 하위 도메인을 따로 등록해서 쓰세요.
* 이 MX 의 우선순위가 다른 MX 보다 **낮아야** 합니다(같아도 메일이 둘로 나뉩니다).
* 와일드카드 DNS(`*.example.com`)가 있어도 이 도메인에 직접 넣은 MX 가 이깁니다.

수신을 켜면 받은 메일은 [이메일 기록](/email-suppression#이메일-기록)에 남고, `email.received` webhook 으로도 전달됩니다.

## 등록한 도메인 보기

콘솔 목록에서 도메인별 검증 상태와 수신 여부를 한눈에 볼 수 있습니다.

![발신 도메인 목록](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/clawops.docs.buildwithfern.com/7ed6ab6bde7dc2f38d13eb83b9f96ffdab95b542524bc4d78ebf06a9f1863281/assets/email/domain-list.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260909%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T184324Z&X-Amz-Expires=604800&X-Amz-Signature=d7d3a2888bd725c2aa6c5c770fa1bdf5a17ece723f0f03ef94aa68f28f32a7bf&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

## 도메인 삭제

도메인을 삭제하면 그 주소로는 더 이상 보낼 수 없습니다. 다시 등록할 수는 있지만 **CNAME 이 새로 발급되므로 DNS 레코드를 다시 심어야 합니다.**

다음: [이메일 보내기](/email-send)