← RFC Reference

Giải phẫu Email Headers

Email Concepts Encyclopedia Published March 2026
ELI5: Các tiêu đề email giống như chữ viết trên bên ngoài một phong bì, cộng với một nhật ký du lịch chi tiết được đính kèm vào đó. `From:` và `To:` cho biết nó từ ai và nó sẽ được gửi đến ai. Các tiêu đề `Received:` là dấu từ mọi bưu điện đã xử lý nó. `DKIM-Signature:` là một dấu niêm phong chống giả mạo. `Authentication-Results:` là phán quyết của bưu điện cuối cùng về việc liệu bức thư có hợp pháp hay không.

Mọi trường tiêu đề quan trọng trong thư điện tử được giải thích — ý nghĩa, ai đặt nó và lý do nó quan trọng. Bao gồm một ví dụ thực tế được chú thích đầy đủ.

Một Ví Dụ Hoàn Chỉnh

Dưới đây là các tiêu đề của một thư thực tế, từ trên xuống dưới, như chúng xuất hiện trong hộp thư của người nhận. Chúng ta sẽ phân tích từng cái một.

Return-Path: <bounces+alice=example.com@sender.mailertogo.com>
Delivered-To: bob@example.net
Received: from mx1.example.net (mx1.example.net [203.0.113.10])
by final-mda.example.net with LMTP id abc123
for <bob@example.net>; Tue, 11 Mar 2026 14:00:12 +0000
Received: from sender.mailertogo.com (sender.mailertogo.com [198.51.100.42])
by mx1.example.net (Postfix) with ESMTPS id 4F3A21C8
for <bob@example.net>; Tue, 11 Mar 2026 14:00:10 +0000
Authentication-Results: mx1.example.net;
spf=pass (sender SPF authorized) smtp.mailfrom=sender.mailertogo.com;
dkim=pass header.d=example.com header.s=mtg header.b=AuUoFE;
dmarc=pass (policy=reject) header.from=example.com
DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=mtg;
c=relaxed/relaxed; q=dns/txt;
h=from:to:subject:date:message-id:mime-version:content-type;
bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;
b=AuUoFEfDxTDkHlLXSZEpZj79LICEps6eda7W3deTVFOk...
From: Alice <alice@example.com>
To: Bob <bob@example.net>
Subject: Your March invoice is ready
Date: Tue, 11 Mar 2026 14:00:00 +0000
Message-ID: <inv-7842@example.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_Part_001"
List-Unsubscribe: <https://example.com/unsub?t=abc123>,
<mailto:unsub@example.com?subject=unsubscribe-abc123>
List-Unsubscribe-Post: List-Unsubscribe=One-Click

Bây giờ chúng ta hãy xem xét từng tiêu đề.

Tiêu Đề Nhận Dạng

From

From: Alice <alice@example.com>

Tác giả của thư, được xác định bởi RFC 5322. Đây là những gì người nhận thấy trong ứng dụng mail của họ. Nó bao gồm tên hiển thị tùy chọn (Alice) và địa chỉ hộp thư (alice@example.com). Các kiểm tra căn chỉnh DMARC được thực hiện dựa trên miền trong tiêu đề này.

From không giống với envelope sender. Envelope sender (MAIL FROM trong SMTP) có thể hoàn toàn khác. Tiêu đề From: được đặt bởi tác giả thư; envelope sender được đặt bởi hệ thống gửi.

To, Cc, Bcc

To: Bob <bob@example.net>

To:Cc: là tiêu đề hiển thị — chúng chỉ ra đối tượng dự định nhưng không kiểm soát giao hàng. Các người nhận thực tế được xác định bởi các lệnh SMTP RCPT TO, có thể bao gồm người nhận Bcc không được liệt kê trong bất kỳ tiêu đề nào. Một thư có thể có tiêu đề To: liệt kê các địa chỉ không trong RCPT TO, và ngược lại (đây là cách Bcc hoạt động).

Reply-To

Không hiển thị trong ví dụ của chúng tôi, nhưng phổ biến. Chỉ định nơi các trả lời nên được hướng tới nếu khác với From:. Thường được sử dụng khi thư được gửi từ địa chỉ không trả lời nhưng trả lời nên tới hỗ trợ:

Reply-To: support@example.com

Sender

Được sử dụng khi thực thể chịu trách nhiệm gửi khác với tác giả. Nếu trợ lý của Alice gửi thư thay mặt cho cô ấy, các tiêu đề có thể đọc From: AliceSender: Assistant. Hầu hết các thư bỏ qua tiêu đề này.

Xác Định Thư

Message-ID

Message-ID: <inv-7842@example.com>

Một định danh duy nhất toàn cầu cho thư này, được tạo bởi người gửi. Định dạng là <unique-part@domain>. Điều này rất quan trọng để phân luồng, khử trùng lặp và tương quan bounce. Mọi thư đều nên có một. Nếu hệ thống gửi của bạn không đặt nó, MTA đầu tiên sẽ tạo một — nhưng sau đó bạn mất khả năng tương quan các bounce với các thư được gửi cụ thể.

In-Reply-To và References

Được sử dụng để phân luồng. In-Reply-To chứa Message-ID của thư đang được trả lời. References chứa toàn bộ chuỗi giá trị Message-ID trong chủ đề. Các ứng dụng mail sử dụng những cái này để nhóm các cuộc trò chuyện:

In-Reply-To: <inv-7842@example.com>
References: <inv-7842@example.com> <reply-001@example.net>

Ngày và Chủ Đề

Date

Date: Tue, 11 Mar 2026 14:00:00 +0000

Ngày và giờ thư được soạn, được đặt bởi người gửi. Định dạng được chỉ định trong RFC 5322. Nó không phải là thời gian giao hàng. Một thư có thể nằm trong hàng đợi trong nhiều giờ hoặc nhiều ngày trước khi giao hàng. Luôn bao gồm độ lệch múi giờ.

Subject

Subject: Your March invoice is ready

Văn bản dạng tự do tóm tắt thư. Không giới hạn độ dài trong spec, nhưng các ứng dụng mail cắt ngắn ở các độ dài khác nhau. Giữ nó dưới 60 ký tự để hiển thị nhất quán. Các ký tự không phải ASCII phải được mã hóa bằng mã hóa RFC 2047 (ví dụ: =?UTF-8?Q?...?=), mặc dù hầu hết các hệ thống mail hiện đại xử lý điều này một cách trong suốt.

Chuỗi Received

Received: from mx1.example.net (mx1.example.net [203.0.113.10])
by final-mda.example.net with LMTP id abc123
for <bob@example.net>; Tue, 11 Mar 2026 14:00:12 +0000
Received: from sender.mailertogo.com (sender.mailertogo.com [198.51.100.42])
by mx1.example.net (Postfix) with ESMTPS id 4F3A21C8
for <bob@example.net>; Tue, 11 Mar 2026 14:00:10 +0000

Mỗi máy chủ xử lý thư thêm một tiêu đề Received: ở phía trước. Chúng được đọc từ dưới lên trên — hop cũ nhất ở dưới cùng, hop gần đây nhất ở trên cùng. Mỗi tiêu đề ghi lại:

Chuỗi Received không có giá trị để gỡ lỗi độ trễ giao hàng. So sánh dấu thời gian giữa các hop để tìm nơi mất thời gian. Lưu ý: các tiêu đề Received: từ phía người gửi có thể được giả mạo. Chỉ tin tưởng các tiêu đề được thêm bởi cơ sở hạ tầng của riêng bạn.

Return-Path

Return-Path: <bounces+alice=example.com@sender.mailertogo.com>

Được đặt bởi MTA giao hàng cuối cùng, điều này ghi lại envelope sender SMTP (MAIL FROM). Đây là nơi các bounce được gửi. Trong ví dụ này, mã hóa VERP được sử dụng — người nhận ban đầu (alice@example.com) được mã hóa vào phần cục bộ của địa chỉ bounce.

Return-Path không được đặt bởi tác giả thư; nó được trích xuất từ phiên SMTP và được thêm bởi máy chủ giao hàng. Nên có chính xác một tiêu đề Return-Path trong một thư được giao hàng.

Tiêu Đề Xác Thực

DKIM-Signature

DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=mtg;
c=relaxed/relaxed; q=dns/txt;
h=from:to:subject:date:message-id:mime-version:content-type;
bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;
b=AuUoFEfDxTDkHlLXSZEpZj79LICEps6eda7W3deTVFOk...

Được thêm bởi máy chủ gửi. Trường d= xác định miền ký (được sử dụng để căn chỉnh DMARC). Trường s= là bộ chọn được sử dụng để tra cứu khóa công khai trong DNS. Trường h= liệt kê những tiêu đề được ký. Xem Email Authentication Explained để biết quá trình xác minh đầy đủ.

Authentication-Results

Authentication-Results: mx1.example.net;
spf=pass (sender SPF authorized) smtp.mailfrom=sender.mailertogo.com;
dkim=pass header.d=example.com header.s=mtg header.b=AuUoFE;
dmarc=pass (policy=reject) header.from=example.com

Được thêm bởi máy chủ nhận (RFC 8601). Đây là bản ghi có thẩm quyền về các kiểm tra xác thực cho thư này tại hop này. Authserv-id (mx1.example.net) xác định máy chủ nào thực hiện kiểm tra. Nó ghi lại các kết quả SPF, DKIM và DMARC, bao gồm các định danh được kiểm tra.

Lưu ý bảo mật: Các tiêu đề Authentication-Results giả mạo từ các nguồn bên ngoài nên được xóa bởi border MTA. Chỉ tin tưởng tiêu đề này khi nó được thêm bởi cơ sở hạ tầng của riêng bạn.

Tiêu Đề MIME

MIME-Version

MIME-Version: 1.0

Chỉ ra thư sử dụng MIME (RFC 2045). Điều này luôn là 1.0 và nên có trong mọi thư. Nếu không có nó, thư được hiểu là văn bản US-ASCII thuần túy.

Content-Type

Content-Type: multipart/alternative; boundary="----=_Part_001"

Mô tả loại phương tiện của phần thân thư. Các giá trị phổ biến:

Tham số boundary xác định dấu phân cách giữa các phần MIME. Xem RFC 2046 để biết chi tiết.

Content-Transfer-Encoding

Cách mã hóa phần thân để vận chuyển an toàn. Các giá trị phổ biến: 7bit, quoted-printable, base64. Đính kèm sử dụng base64. Phần thân thư HTML thường sử dụng quoted-printable để xử lý các ký tự không phải ASCII trong khi vẫn có thể đọc được phần lớn.

Tiêu Đề Quản Lý Danh Sách

List-Unsubscribe: <https://example.com/unsub?t=abc123>,
<mailto:unsub@example.com?subject=unsubscribe-abc123>
List-Unsubscribe-Post: List-Unsubscribe=One-Click

RFC 2369 xác định List-Unsubscribe, cung cấp URL và/hoặc địa chỉ mailto để hủy đăng ký. RFC 8058 thêm List-Unsubscribe-Post, cho phép hủy đăng ký một cú nhấp chuột trực tiếp từ UI của ứng dụng mail mà không cần mở trình duyệt. Gmail và các nhà cung cấp lớn khác yêu cầu cả hai tiêu đề cho thư số lượng lớn và tiếp thị.

Tiêu Đề Bạn Không Nên Nhìn Thấy (Nhưng Đôi Khi Có)

X-Mailer / User-Agent

Xác định ứng dụng mail hoặc phần mềm gửi. Đôi khi được sử dụng bởi các bộ lọc thư rác như một tín hiệu. Các hệ thống gửi hiện đại thường bỏ qua cái này để giảm bề mặt dấu vân tay.

X-Priority / Importance

Các tiêu đề không chuẩn cố gắng đặt ưu tiên thư. Hầu hết các ứng dụng mail bỏ qua chúng. Một số bộ lọc thư rác coi các dấu ưu tiên cao là tín hiệu tiêu cực.

X-Spam-Status / X-Spam-Score

Được thêm bởi các hệ thống lọc thư rác (như SpamAssassin). Không chuẩn hóa, nhưng được sử dụng rộng rãi trong nội bộ. Những cái này không nên có trong thư gửi đi — chúng được thêm bởi cơ sở hạ tầng nhận.

Những Gì Có Thể Sai

Missing Message-ID

Nếu bạn không đặt Message-ID, MTA đầu tiên sẽ thêm một. Nhưng bạn mất khả năng tương quan các thư được gửi với các bounce và thông báo giao hàng. Luôn tạo Message-ID của riêng bạn trước khi gửi.

From and envelope sender confusion

Một nguồn vấn đề giao hàng phổ biến. Tiêu đề From: hiển thị alice@example.com, nhưng envelope sender là bounce@esp.com. SPF xác thực miền ESP, không phải miền của bạn. Nếu chữ ký DKIM của bạn cũng sử dụng d=esp.com, việc căn chỉnh DMARC sẽ thất bại cho cả hai cơ chế. Cách khắc phục: ký bằng d=example.com để DKIM căn chỉnh.

Duplicate or conflicting headers

RFC 5322 chỉ định rằng một số tiêu đề (như From:, Date:, Message-ID:) phải xuất hiện chính xác một lần. Các bản sao có thể gây ra hành vi không thể dự đoán — các ứng dụng mail khác nhau có thể chọn các giá trị khác nhau. Một số bộ lọc thư rác coi các tiêu đề From: trùng lặp là đáng ngờ.

Missing Date header

Nếu không có tiêu đề Date:, MTA nhận hoặc ứng dụng mail sẽ thay thế dấu thời gian của chính nó, có thể khác đáng kể. Một số bộ lọc thư rác phạt các thư không có tiêu đề Date.

Received chain forgery

Bất kỳ ai cũng có thể thêm các tiêu đề Received: giả vào phía trước thư trước khi gửi. MTA nhận chỉ có thể tin tưởng các tiêu đề nó đã thêm. Khi gỡ lỗi, hãy bắt đầu từ trên cùng (gần đây nhất) và làm việc xuống dưới, và dừng tin tưởng một khi bạn chạm vào ranh giới giữa cơ sở hạ tầng của bạn và thế giới bên ngoài.

Những Điều Cần Ghi Nhớ

Đọc Thêm

Related RFCs