Trước tiên, hãy kiểm tra sandbox vì trạng thái này quyết định tính năng có hoạt động hay không. Tài khoản SES mới bắt đầu trong sandbox ở mọi Region. Khi còn trong sandbox, SES chỉ gửi thư đến các địa chỉ đã xác minh, miền đã xác minh và trình mô phỏng hộp thư riêng của SES. Ngoài ra, giới hạn là 200 thư trong mỗi 24 giờ và một thư mỗi giây.
Việc xác minh một địa chỉ Email Spam Tester không giúp bạn vượt qua giới hạn này. SES xác minh người nhận bằng cách gửi email chứa liên kết. Vì địa chỉ của chúng tôi chỉ nhận đúng một thư trước khi đóng, email xác minh sẽ dùng hết lượt nhận đó. Vì vậy, trên thực tế, bạn cần quyền truy cập production tại Region gửi thư. AWS cam kết phản hồi ban đầu cho yêu cầu đó trong vòng 96 giờ.
Do trạng thái sandbox áp dụng riêng cho từng Region, tài khoản đang ở production trong eu-west-1 vẫn có thể ở sandbox trong us-east-1. Danh tính cũng áp dụng riêng cho từng Region, mỗi danh tính có các bản ghi DKIM riêng.
Lấy một địa chỉ, gửi một thư
Mở email-spam-tester.com và sao chép địa chỉ được hiển thị. Địa chỉ này không yêu cầu tài khoản hoặc API key, có dạng test- cộng với hai mươi ký tự tại t.email-spam-tester.com. Bạn có một giờ và được gửi một thư, vì vậy hãy chuẩn bị lệnh gửi trước khi lấy địa chỉ.
Cách gửi tối giản nhất là dùng CLI, được điều chỉnh từ ví dụ của chính AWS trên trang về SES tenants bằng cách bỏ các cờ tenant và configuration set:
aws sesv2 send-email \
--from-email-address "sender@yourdomain.com" \
--destination "ToAddresses=test-xxxxxxxxxxxxxxxxxxxx@t.email-spam-tester.com" \
--content "Simple={Subject={Data='Test Subject',Charset=utf-8},Body={Text={Data='Test email body',Charset=utf-8}}}"
Địa chỉ From phải là một danh tính đã được xác minh, kể cả trong môi trường production. Nội dung chỉ có văn bản như thế này đủ để kiểm tra xác thực và IP, nhưng hầu như không cho bạn biết gì về nội dung. Để có kết luận thực tế, hãy gửi đúng thư mà ứng dụng của bạn thực sự gửi, gồm cả phần HTML và các header. Đồng thời, hãy dùng cùng đường dẫn mã, dù đó là send_email của boto3, thư viện SMTP hay cách khác. Nếu các lần gửi trong production sử dụng configuration set, hãy thêm --configuration-set-name tại đây để bài kiểm tra chạy qua cùng các thiết lập.
Bài kiểm tra hộp thư đến dùng cùng lệnh này. Thêm các hộp thư của nhà cung cấp vào ToAddresses bên cạnh địa chỉ kiểm thử và thêm marker của bài kiểm tra vào dữ liệu Subject. Khi đó, một lệnh gọi sẽ tạo hai báo cáo. Báo cáo thứ hai liệt kê thư đã đến thư mục nào tại Gmail, Outlook, Yahoo và các nhà cung cấp khác. Những hộp thư đó cũng chưa được xác minh, vì vậy cách này cũng cần quyền truy cập production.
Bạn cũng có thể thực hiện qua console. Mở Configuration > Identities, nhấp vào danh tính rồi chọn Send test email. Chọn Raw nếu bạn muốn dán một thư MIME đầy đủ với các header của riêng mình. AWS mô tả console là công cụ thường chỉ dùng cho email kiểm thử, và tài liệu không mô tả tiền tố kiểm thử hay thay đổi nào khác đối với thư. Trong sandbox, trường Custom recipient cần một địa chỉ đã được xác minh, nên bạn lại gặp vấn đề nêu trên.
Danh tính SES mới sẽ hiển thị thế nào trong báo cáo
Từ báo cáo · Xác thực
- SPFđạtchưa căn chỉnhMAIL FROM là một tên miền phụ của amazonses.com, không phải tên miền của bạn.
- DKIMđạtđã căn chỉnhEasy DKIM ký mọi thư bằng khóa 2048 bit trên tên miền của bạn.
- DMARCđạtVượt qua nhờ chữ ký DKIM được căn chỉnh, sau khi bạn công bố bản ghi DMARC.
Danh tính SES mặc định: SPF vượt qua, nhưng cho amazonses.com. MAIL FROM tùy chỉnh sẽ giúp căn chỉnh SPF.
DKIM. Easy DKIM là tùy chọn mặc định cho danh tính tên miền và ký mọi thư bằng khóa 2048 bit. Quá trình thiết lập gồm ba bản ghi CNAME có tên token._domainkey.yourdomain.com, trỏ đến token.dkim.<region>.amazonses.com. Nếu kiểm tra DKIM thất bại, trước tiên hãy xem xét hai điều: DNS đã cập nhật xong chưa (AWS cho phép tối đa 72 giờ), và máy chủ DNS của bạn có nối thêm tên miền vào tên bản ghi để tạo thành token._domainkey.yourdomain.com.yourdomain.com hay không. Với BYODKIM, bạn công bố một bản ghi TXT tại selector riêng của mình. Trong lúc chuyển đổi giữa hai cách này, SES có thể gửi thư hoàn toàn không có chữ ký, khiến báo cáo đánh dấu DKIM là thiếu. Công cụ kiểm tra DKIM sử dụng token làm selector.
SPF và đường dẫn trả về. Theo mặc định, SES sử dụng một tên miền phụ của amazonses.com làm MAIL FROM. SPF vượt qua, nhưng cho amazonses.com, vì vậy báo cáo hiển thị SPF không được căn chỉnh với trường From của bạn. Khi DKIM được căn chỉnh, điều này chỉ bị trừ ít điểm (2 điểm trên thang 100 điểm thay vì 5), và DMARC vẫn vượt qua nhờ DKIM. Để căn chỉnh cả SPF, hãy thiết lập một tên miền phụ MAIL FROM tùy chỉnh với đúng một bản ghi MX, 10 feedback-smtp.<region>.amazonses.com, và một bản ghi TXT v=spf1 include:amazonses.com ~all. Không chọn tên miền phụ dùng để nhận thư và không thêm aspf=s vào bản ghi DMARC, vì AWS cho biết SPF không thể căn chỉnh với SES khi dùng chính sách SPF nghiêm ngặt.
DMARC. SES không công bố bản ghi này cho bạn. Mẫu của AWS là v=DMARC1;p=quarantine;rua=mailto:my_dmarc_report@example.com. Nếu chưa có ai đọc báo cáo DMARC của bạn, bạn nên bắt đầu với p=none rồi siết chặt sau. Công cụ kiểm tra DMARC hiển thị cấu hình hiện tại của bạn, còn DMARC fail trình bày các lỗi phổ biến.
Các giá trị ví dụ. Hãy sao chép giá trị thực từ tài khoản của bạn.
| Tên | Loại | Giá trị | Mục đích | Sao chép |
|---|---|---|---|---|
| token. | CNAME | token. | Easy DKIM. Cần ba bản ghi như vậy, mỗi token một bản ghi. | |
| mail. | MX | 10 feedback-smtp. | MAIL FROM tùy chỉnh. Chính xác một bản ghi MX trên tên miền phụ không nhận thư. | |
| mail. | TXT | v= | SPF cho MAIL FROM tùy chỉnh, để SPF căn chỉnh với trường From của bạn. | |
| _dmarc. | TXT | v= | DMARC, mẫu của AWS. Bắt đầu với p=none nếu chưa có ai đọc báo cáo và không thêm aspf=s. |
List-Unsubscribe. SES chỉ thêm List-Unsubscribe và List-Unsubscribe-Post khi bạn gửi bằng ListManagementOptions trỏ đến một danh sách liên hệ và chủ đề. Ngay cả khi đó, tính năng này chỉ áp dụng cho thư có một người nhận và dùng Easy DKIM, đồng thời SES sẽ ghi đè mọi tiêu đề hủy đăng ký do bạn tự đặt. Tất cả thư khác đều được gửi mà không có tiêu đề hủy đăng ký. Với bản tin, điều này khiến kiểm tra List-Unsubscribe và kiểm tra hủy đăng ký bằng một lần nhấp thất bại, trừ khi bạn tự thêm các tiêu đề đó. Kể từ tháng 3 năm 2024, API v2 chấp nhận tiêu đề tùy chỉnh mà không cần MIME thô. Dựa trên bài viết của AWS về hủy đăng ký bằng một lần nhấp, hai tiêu đề có dạng như sau:
"Headers": [
{ "Name": "List-Unsubscribe",
"Value": "<https://yourdomain.com/unsub?address=x&topic=x>, <mailto:unsubscribe@yourdomain.com>" },
{ "Name": "List-Unsubscribe-Post",
"Value": "List-Unsubscribe=One-Click" }
]
Sau đó, endpoint của bạn phải xử lý yêu cầu POST. Email đặt lại mật khẩu và biên nhận không có tiêu đề danh sách là trường hợp khác, với các email này, báo cáo đánh dấu nhóm người gửi hàng loạt là đã bỏ qua. Xem thêm về tiêu đề này tại trang List-Unsubscribe của chúng tôi.
IP và danh sách chặn
Các tài khoản mới gửi từ những IP dùng chung với người dùng SES khác, và AWS khuyến nghị tiếp tục sử dụng chúng trừ khi lưu lượng gửi của bạn lớn và ổn định. Báo cáo truy vấn 21 danh sách chặn cho IP gửi. Với địa chỉ dùng chung, nếu IP bị liệt kê thì vấn đề thuộc về cả nhóm IP. IP chuyên dụng có hai loại: Standard, bạn phải tự làm ấm IP, và Managed, SES xử lý quá trình làm ấm. Với IP chuyên dụng, việc bị liệt kê gắn với chính hoạt động gửi của bạn. Bạn có thể đưa bất kỳ IP nào tìm thấy trong tab Headers trực tiếp vào công cụ kiểm tra danh sách chặn.
AWS cũng giám sát tài khoản của bạn. Câu hỏi thường gặp về thực thi chính sách của AWS yêu cầu bạn kiểm thử bằng các địa chỉ thật có thể nhận thư hoặc bằng trình mô phỏng, để người nhận giả không làm tăng tỷ lệ thư bị trả lại. AWS sẽ đưa tài khoản vào diện xem xét khi tỷ lệ thư bị trả lại đạt 5% hoặc tỷ lệ khiếu nại đạt 0,1%.
Kế hoạch khắc phục ở cuối báo cáo liệt kê tối đa tám thay đổi. Mỗi thay đổi đi kèm bản ghi DNS để sao chép nếu cần, và số điểm bên cạnh mỗi cách khắc phục là mức phạt hiện tại của các kiểm tra liên quan. Mô hình chọn và giải thích các cách khắc phục, nhưng không định giá chúng. Nếu bạn không hiểu tên của một kiểm tra, tài liệu giải thích từng kiểm tra trong số 42 kiểm tra.
Tài liệu tham khảo của AWS
Quyền truy cập Sandbox và productiondocs.aws.amazon.com ↗Easy DKIMdocs.aws.amazon.com ↗MAIL FROM tùy chỉnhdocs.aws.amazon.com ↗DMARC với SESdocs.aws.amazon.com ↗Quản lý đăng kýdocs.aws.amazon.com ↗sesv2 send-emaildocs.aws.amazon.com ↗Câu hỏi
Tôi có thể kiểm thử từ SES sandbox không?
Không thể kiểm thử bằng địa chỉ của chúng tôi. Trong sandbox, SES chỉ gửi đến người nhận đã được xác minh, và việc xác minh địa chỉ của chúng tôi sẽ sử dụng hết một email duy nhất mà địa chỉ này chấp nhận. Hãy yêu cầu quyền truy cập production cho Region đó. Trong thời gian chờ đợi, bạn có thể kiểm tra các bản ghi bằng những công cụ kiểm tra DKIM, SPF và DMARC miễn phí.
SES mailbox simulator có cung cấp cùng thông tin không?
Không. Công cụ này cho bạn biết cách SES xử lý email bị trả lại, khiếu nại hoặc lượt gửi thành công, và được tính phí như lượt gửi thông thường. Công cụ này không phân tích header, cơ chế xác thực hoặc nội dung của bạn.
Tôi có nên thêm SES vào bản ghi SPF của domain gốc không?
Máy chủ nhận kiểm tra SPF dựa trên domain MAIL FROM, mặc định là một subdomain của amazonses.com hoặc subdomain MAIL FROM tùy chỉnh của bạn. Bản ghi SPF cho SES phải nằm trên subdomain đó. Theo trang MAIL FROM, domain gốc không cần thêm gì.