# Thêm và xác minh tên miền gửi

Thêm tên miền dùng để gửi email, khai báo các bản ghi DKIM, SPF, return path và DMARC, rồi xác minh để email vào hộp thư chính.

Hạ Tầng chỉ gửi email từ tên miền bạn đã thêm và xác minh. Xác minh là cách chứng minh với Gmail, Outlook và các nhà cung cấp hộp thư khác rằng email đúng là do bạn gửi, và đó là điều đầu tiên họ kiểm tra trước khi quyết định cho thư vào hộp thư chính hay thư rác. Mỗi tên miền có khoá DKIM riêng và tên miền phụ return path riêng.

Bạn cần quyền **Quản lý** trong module Email để thêm hoặc sửa tên miền, và quyền vào phần cài đặt DNS của tên miền (Cloudflare, Mắt Bão, P.A Việt Nam, GoDaddy hoặc nơi đang quản lý DNS của bạn).

## Chọn tên miền

Tên miền trong địa chỉ người gửi phải trùng chính xác với một tên miền đã xác minh. Muốn gửi bằng `hello@updates.mochuong.vn` thì thêm `updates.mochuong.vn`; chỉ thêm `mochuong.vn` là chưa đủ.

> [!TIP]
> Gửi email marketing từ một tên miền phụ như `updates.mochuong.vn` hay `tin.mochuong.vn`. Nếu một chiến dịch bị báo spam nhiều, uy tín của tên miền chính, nơi nhân viên và email đơn hàng đang dùng, không bị ảnh hưởng.

## Thêm tên miền

1. Mở **Email → Tên miền**.
2. Nhập tên miền hoặc tên miền phụ vào ô **Tên miền**, ví dụ `tin.mochuong.vn`.
3. Nếu cần, mở **Tuỳ chọn nâng cao**:
   - **Return-Path tuỳ chỉnh**: tên miền phụ nhận thư trả lại, mặc định là `send`. Chỉ đổi khi `send.` đã được dùng cho việc khác. Sau khi thêm thì không đổi được nữa.
   - **Tên miền phụ theo dõi**: ví dụ `links`, để link theo dõi dùng `links.tin.mochuong.vn` thay cho địa chỉ của Hạ Tầng.
   - **Tuỳ chọn theo dõi**: **Bật theo dõi nhấp** (bật sẵn) và **Bật theo dõi mở**.
4. Bấm **Thêm tên miền**.

Tên miền hiện trong danh sách với trạng thái **Chưa bắt đầu**, và trang của tên miền mở ra cùng các bản ghi cần khai báo.

![Danh sách tên miền và ô thêm tên miền](https://hatang.dev/help/img/vi/email/domains.webp)

## Khai báo bản ghi DNS

Trang tên miền chia bản ghi thành từng nhóm theo mục đích. Sao chép **Tên** và **Giá trị** của từng bản ghi bằng nút sao chép bên cạnh; đừng gõ tay khoá DKIM.

| Bản ghi | Loại | Tên (ví dụ cho `tin.mochuong.vn`) | Giá trị | Bắt buộc |
|---|---|---|---|---|
| DKIM | TXT | `rs4k7mq2xd._domainkey.tin.mochuong.vn` | `v=DKIM1; k=rsa; p=…` (một khoá dài) | Có |
| MX | MX, ưu tiên 10 | `send.tin.mochuong.vn` | `feedback-smtp.<vùng>.amazonses.com` | Có |
| SPF | TXT | `send.tin.mochuong.vn` | `v=spf1 include:amazonses.com ~all` | Có |
| DMARC | TXT | `_dmarc.tin.mochuong.vn` | `v=DMARC1; p=none;` | Nên có |
| Theo dõi | CNAME | `links.tin.mochuong.vn` | Tên máy chủ hiện trên trang | Chỉ khi có tên miền phụ theo dõi |
| Nhận thư | MX, ưu tiên 10 | `tin.mochuong.vn` | Tên máy chủ hiện trên trang | Chỉ khi bật nhận email |

Vai trò của từng bản ghi:

- **DKIM** ký mỗi email bằng khoá của tên miền, để bên nhận biết thư không bị sửa hay giả mạo.
- **MX và SPF trên `send.`** nhận thư trả lại và cho phép máy chủ gửi thư của Hạ Tầng gửi thay tên miền của bạn. Chúng nằm trên tên miền phụ `send.`, nên không đụng tới bản ghi SPF hay MX mà tên miền chính đang dùng cho Google Workspace, Microsoft 365 hay hosting.
- **DMARC** cho bên nhận biết phải làm gì với thư không qua được các bước kiểm tra trên. DMARC không chặn việc xác minh, nhưng Gmail và Yahoo yêu cầu với người gửi số lượng lớn.

Nếu nhà cung cấp DNS hỗ trợ Domain Connect, trang hiện khung **Bản ghi DNS** với nút **Tự động cấu hình với** kèm tên nhà cung cấp. Bấm vào, đăng nhập ở nhà cung cấp DNS và đồng ý: bản ghi được thêm giúp bạn và việc xác minh bắt đầu ngay. Nếu DNS đặt ở Cloudflare, trang có link mở thẳng phần bản ghi DNS của zone.

Hướng dẫn từng bước cho các nhà cung cấp DNS phổ biến có trong bài [Thêm bản ghi DNS ở nhà cung cấp tên miền](https://hatang.dev/vi/help/email/dns-by-provider).

## Xác minh

1. Khai báo xong bản ghi, bấm **Xác minh bản ghi DNS** trên trang tên miền.
2. Hạ Tầng kiểm tra mọi bản ghi ngay lập tức, sau đó mỗi phút một lần; trang tự làm mới khi tên miền còn đang chờ.
3. Phần lớn tên miền được xác minh trong vài phút. Thay đổi DNS có thể mất tới một giờ để cập nhật khắp nơi.

![Tên miền đang chờ xác minh: DKIM và MX đã xác minh, SPF và CNAME theo dõi chưa tìm thấy](https://hatang.dev/help/img/vi/email/domain-records.webp)

Tên miền **Đã xác minh** khi DKIM, MX và SPF đều khớp và Amazon SES, dịch vụ chuyển phát email, đã xác nhận chữ ký DKIM. Bản ghi DMARC, theo dõi và nhận thư không bao giờ làm chậm việc xác minh. Khi đã xác minh, nút đổi thành **Kiểm tra lại DNS** và có thêm nút **Gửi email thử**.

### Ý nghĩa các trạng thái

| Trạng thái | Ý nghĩa | Bạn cần làm gì |
|---|---|---|
| **Chưa bắt đầu** | Đã thêm tên miền nhưng chưa ai yêu cầu xác minh | Khai báo bản ghi rồi bấm **Xác minh bản ghi DNS** |
| **Đang chờ** | Hạ Tầng đang kiểm tra; còn bản ghi chưa khớp, hoặc Amazon SES chưa xác nhận DKIM | Chờ thêm và xem lại các bản ghi đang **Đang chờ** hoặc **Thất bại** |
| **Đã xác minh** | Bạn gửi được email từ tên miền này | Không cần làm gì |
| **Lỗi tạm thời** | Tra cứu DNS bị quá thời gian hoặc lỗi vì lý do khác ngoài "không tìm thấy" | Không cần làm gì; Hạ Tầng tự thử lại |
| **Thất bại** | Xác minh thất bại, ví dụ bản ghi DKIM không khớp | Sửa bản ghi rồi bấm lại **Xác minh bản ghi DNS** |

Mỗi bản ghi có trạng thái riêng. Dưới bản ghi chưa khớp có một dòng ghi chú cho biết Hạ Tầng thực sự tìm thấy gì: `found: nothing` nghĩa là chưa có bản ghi nào dưới tên đó.

## Xử lý sự cố

| Hiện tượng | Nguyên nhân | Cách xử lý |
|---|---|---|
| Bản ghi báo `found: nothing` rất lâu | Thiếu bản ghi, hoặc nhà cung cấp DNS tự gắn thêm tên miền lần nữa (`send.tin.mochuong.vn.mochuong.vn`) | Nhiều nhà cung cấp tự thêm tên miền vào cuối: chỉ nhập phần đứng trước tên miền chính, ví dụ `send.tin` hoặc `rs4k7mq2xd._domainkey.tin` trong zone `mochuong.vn` |
| DKIM mãi **Đang chờ** dù đã có bản ghi | Khoá bị cắt hoặc thay đổi khi dán | Dán lại toàn bộ giá trị bằng nút sao chép. Một số nhà cung cấp tự tách giá trị dài thành nhiều chuỗi trong ngoặc kép; như vậy vẫn đúng |
| SPF trên `send.` thất bại | Tên miền phụ này có hai bản ghi SPF, hoặc bản ghi SPF thiếu `include:amazonses.com` | Chỉ giữ một bản ghi `v=spf1` có chứa `include:amazonses.com` |
| Không tạo được bản ghi MX | `send.` đang có bản ghi CNAME; tên đã có CNAME thì không chứa được bản ghi khác | Xoá CNAME đó, hoặc xoá tên miền rồi thêm lại với **Return-Path tuỳ chỉnh** khác |
| Mọi bản ghi đã xác minh nhưng tên miền vẫn **Đang chờ** | Amazon SES chưa xác nhận DKIM | Thường chỉ vài phút; bấm **Kiểm tra lại DNS** sau |
| Gửi thư bị từ chối với thông báo "domain is not verified" | Địa chỉ người gửi dùng tên miền hoặc tên miền phụ khác với tên miền đã xác minh | Gửi từ địa chỉ thuộc đúng tên miền đã xác minh, hoặc thêm cả tên miền đó |

Xoá tên miền (nút **Xoá** trên trang tên miền) sẽ dừng mọi lượt gửi từ tên miền đó; các email đang chờ gửi sẽ bị trả lại.

Phần API (`POST /domains`, lệnh xác minh và webhook) có trong [hướng dẫn tên miền ở trang dành cho lập trình viên](https://hatang.dev/vi/docs/guides/email/domains).
