Kiểm tra SPF, DKIM, DMARC API
Đánh giá cấu hình email của tên miền: MX, SPF (giới hạn 10 lượt tra), khóa DKIM, chính sách DMARC, MTA-STS, TLS-RPT, BIMI, kèm điểm số và cách sửa.
API kiểm tra xác thực email cho biết tên miền đã được cấu hình để gửi thư tới hộp thư đến và chống giả mạo chưa, những yêu cầu mà Gmail, Yahoo và Outlook hiện bắt buộc với người gửi số lượng lớn. API đọc bản ghi MX, bản ghi SPF (phát hiện bản ghi trùng, +all / ?all, cơ chế ptr lỗi thời và đếm số lượt tra DNS qua mọi include so với giới hạn 10), khóa DKIM ở selector của bạn hoặc khoảng 20 selector phổ biến (Google, Microsoft 365, Mailchimp, SendGrid, Resend, Zoho…) kèm độ dài khóa, và chính sách DMARC cùng địa chỉ nhận báo cáo.
Các bản ghi tuỳ chọn cũng được báo cáo: MTA-STS và TLS-RPT cho việc nhận thư mã hoá, BIMI để hiện logo thương hiệu trong hộp thư. Mỗi phát hiện là một mục kiểm tra có trạng thái (pass, info, warn, fail) và thông báo bằng tiếng Anh hoặc tiếng Việt (lang=vi) nói rõ cần sửa gì; điểm từ 0 đến 100 và xếp hạng A–F cho cái nhìn nhanh.
Selector DKIM không tra được từ DNS: nếu nhà cung cấp dùng selector riêng, hãy xem thẻ s= trong header DKIM-Signature của một email đã gửi và truyền vào selectors=. Bản ghi được đọc trực tiếp qua DNS-over-HTTPS (cache 5 phút).
Tham số
| Tên | Vị trí | Kiểu | Bắt buộc | Mặc định | |
|---|---|---|---|---|---|
domain | query | string | có | Tên miền (hoặc một địa chỉ email). | |
selectors | query | string | không | Các selector DKIM cần kiểm tra, phân cách bằng dấu phẩy (mặc định: ~20 selector phổ biến). | |
lang | query | string | không | en | Ngôn ngữ thông báo: en hoặc vi. |
Ví dụ
curl "https://apibox.io.vn/v1/email-auth?domain=github.com" \
-H "Authorization: Bearer YOUR_API_KEY"const res = await fetch('https://apibox.io.vn/v1/email-auth?domain=github.com', {
method: 'GET',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
},
});
const data = await res.json();
console.log(data);import requests
res = requests.get(
"https://apibox.io.vn/v1/email-auth?domain=github.com",
headers={"Authorization": "Bearer YOUR_API_KEY"},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/email-auth?domain=github.com');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY'],
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));Kết quả trả về
{
"domain": "github.com",
"score": 90,
"grade": "A",
"summary": {
"passed": 5,
"info": 3,
"warnings": 2,
"errors": 0
},
"mx": [
{
"preference": 1,
"host": "aspmx.l.google.com"
}
],
"spf": {
"record": "v=spf1 ip4:192.30.252.0/22 include:spf.protection.outlook.com … ~all",
"all": "softfail",
"dns_lookups": 10,
"includes": [
"spf.protection.outlook.com",
"_netblocks.google.com",
"…"
]
},
"dmarc": {
"record": "v=DMARC1; p=quarantine; …",
"p": "quarantine"
},
"dkim": [
{
"selector": "google",
"key_type": "rsa",
"key_bits": 2048,
"revoked": false,
"testing": false
},
{
"selector": "selector1",
"key_type": "rsa",
"key_bits": 1024,
"revoked": false,
"testing": false
}
],
"checks": [
{
"id": "spf_lookups",
"status": "warn",
"message": "10/10 DNS lookups",
"value": 10
},
{
"id": "dmarc",
"status": "pass",
"message": "DMARC policy \"p=quarantine\""
},
{
"id": "dkim_key",
"status": "warn",
"message": "RSA key shorter than 2048 bits at selector1, k1"
},
"…"
]
}
Ứng dụng
- Kiểm tra khi khách hàng kết nối tên miền vào dịch vụ gửi email, CRM
- Sửa lỗi “email vào spam” trước chiến dịch
- Theo dõi tên miền của khách hàng tại agency, đơn vị IT
- Xác nhận cấu hình DNS sau khi đổi nhà cung cấp email
Hỏi đáp
Vì sao SPF lỗi vì quá nhiều lượt tra?
RFC 7208 chỉ cho phép tối đa 10 lượt tra DNS (include, a, mx, ptr, exists, redirect) khi đánh giá SPF; vượt quá thì máy nhận trả permerror và SPF thất bại. API đếm đệ quy; hãy bỏ các include không dùng hoặc làm phẳng chúng.
p=none đã đủ chưa?
Đủ yêu cầu tối thiểu của Gmail và Yahoo nhưng không chặn được giả mạo. Hãy đọc báo cáo (rua=) rồi chuyển sang p=quarantine hoặc p=reject.
Báo không tìm thấy DKIM dù tôi có ký email.
Nhà cung cấp có thể dùng selector riêng. Tìm giá trị s= trong header DKIM-Signature của một email nhận được và truyền selectors=giá-trị-đó.
API liên quan
Định vị IP
Tra cứu quốc gia, tỉnh/thành, toạ độ, ASN và nhà mạng của bất kỳ địa chỉ IPv4, IPv6 nào – hoặc IP của chính bạn – chỉ với một request JSON.
DNSTra cứu DNS
Tra bản ghi A, AAAA, MX, TXT, NS, CNAME, SOA, CAA, SRV… của mọi tên miền hoặc tra ngược IP (PTR) qua DNS over HTTPS, kết quả JSON gọn gàng.
@Kiểm tra e-mail
Kiểm tra địa chỉ e-mail: cú pháp RFC, bản ghi MX/A, ~120k tên miền e-mail tạm, tài khoản chức năng, nhà cung cấp miễn phí và gợi ý gõ sai như gmial.com.