Đọc báo cáo DMARC API

Chuyển báo cáo DMARC tổng hợp (XML, .zip, .gz từ Google, Microsoft, Yahoo) thành JSON: nguồn gửi theo IP, căn chỉnh SPF / DKIM, tỷ lệ đạt và gợi ý.

POSThttps://apibox.io.vn/v1/dmarc-report
Mạng & Kiểm tra▶ Dùng thử online

Các nhà cung cấp hộp thư gửi báo cáo DMARC tổng hợp (RUA) dưới dạng file XML, thường được nén zip hoặc gzip. Tải lên một hoặc nhiều file (file, file2…, tối đa 50 file hoặc 200 báo cáo, file ZIP có thể chứa nhiều báo cáo) hoặc dán nội dung XML. API đọc được cả định dạng RFC 7489 và định dạng tổng hợp mới của DMARCbis (namespace dmarc-2.0, có np, testing và discovery_method), trả về đơn vị gửi báo cáo, mã báo cáo, khoảng thời gian, chính sách đã công bố và từng bản ghi: IP nguồn, số thư, cách xử lý, kết quả DKIM và SPF do bên nhận đánh giá, lý do ghi đè, địa chỉ From / envelope và kết quả DKIM / SPF gốc kèm kiểm tra căn chỉnh của chúng tôi.

Sau đó mọi báo cáo được tổng hợp: tổng số thư, số đạt / không đạt DMARC và tỷ lệ, tỷ lệ DKIM và SPF căn chỉnh, cách xử lý, tổng theo tên miền From, và danh sách nguồn gửi xếp theo số lượng kèm tỷ lệ đạt, tên miền và selector DKIM, tên miền SPF. failing_sources liệt kê các IP có thư không đạt, còn advice đưa ra bước tiếp theo dễ hiểu (khai báo nguồn gửi hợp lệ, thêm DKIM vì SPF hỏng khi chuyển tiếp thư, chuyển từ p=none lên quarantine khi trên 98% thư đạt).

Với enrich=true, 50 nguồn gửi lớn nhất được tra thêm tên miền ngược (PTR) và, nếu có, số ASN / đơn vị sở hữu mạng. Đặt include_records=false để có kết quả gọn. Báo cáo chỉ được xử lý trong bộ nhớ, không lưu lại.

Tham số

TênVị tríKiểuBắt buộcMặc định
filebodyfilekhôngFile báo cáo: .xml, .xml.gz, .gz hoặc .zip (thêm file2… cho nhiều file).
xmlbodystringkhôngNội dung XML của báo cáo (hoặc gửi body XML thô).
enrichbodybooleankhôngfalseTra PTR và ASN cho 50 IP nguồn lớn nhất.
include_recordsbodybooleankhôngtrueTrả về từng bản ghi của mỗi báo cáo.

Ví dụ

curl -X POST "https://apibox.io.vn/v1/dmarc-report" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/xml" \
  --data-binary '<feedback>…<policy_published><domain>example.vn</domain><p>none</p>…</policy_published><record>…</record></feedback>'

Kết quả trả về

{
  "reports_count": 1,
  "summary": {
    "messages": 123,
    "dmarc_pass": 120,
    "dmarc_fail": 3,
    "pass_rate": 97.56,
    "dkim_aligned_pass_rate": 97.56,
    "spf_aligned_pass_rate": 97.56,
    "dispositions": {
      "none": 123
    },
    "source_ips": 2,
    "policies": [
      "none"
    ],
    "domains": {
      "example.vn": {
        "messages": 123,
        "pass": 120,
        "fail": 3
      }
    },
    "date_range": {
      "begin": "2024-11-06T00:00:00.000Z",
      "end": "2024-11-06T23:59:59.000Z"
    },
    "reporters": [
      "google.com"
    ]
  },
  "advice": [
    "Policy is p=none: before enforcing, authorise (SPF) or sign (DKIM, aligned with the From domain) every legitimate source listed in failing_sources.",
    "1 source IP(s) sent mail that failed DMARC; check which are your own services (add them to SPF / set up DKIM) and which are spoofing."
  ],
  "sources": [
    {
      "source_ip": "209.85.220.41",
      "count": 120,
      "pass": 120,
      "fail": 0,
      "dkim_aligned_pass": 120,
      "spf_aligned_pass": 120,
      "header_from": [
        "example.vn"
      ],
      "dkim_domains": [
        "example.vn (google): pass"
      ],
      "spf_domains": [
        "example.vn: pass"
      ],
      "dispositions": {
        "none": 120
      },
      "pass_rate": 100
    },
    {
      "source_ip": "198.51.100.7",
      "count": 3,
      "pass": 0,
      "fail": 3,
      "dkim_aligned_pass": 0,
      "spf_aligned_pass": 0,
      "header_from": [
        "example.vn"
      ],
      "dkim_domains": [],
      "spf_domains": [
        "spammer.test: softfail"
      ],
      "dispositions": {
        "none": 3
      },
      "pass_rate": 0
    }
  ],
  "failing_sources": [
    {
      "source_ip": "198.51.100.7",
      "messages": 3,
      "header_from": [
        "example.vn"
      ]
    }
  ],
  "reports": [
    {
      "file": null,
      "format": "rfc7489",
      "reporter": {
        "org_name": "google.com",
        "email": "noreply-dmarc-support@google.com",
        "report_id": "1234567890"
      },
      "policy_published": {
        "domain": "example.vn",
        "p": "none",
        "sp": "none",
        "adkim": "r",
        "aspf": "r",
        "pct": 100
      },
      "records": [
        "…"
      ]
    }
  ]
}

Ứng dụng

  • Đọc báo cáo DMARC hằng ngày của tên miền mà không cần dashboard trả phí
  • Tìm dịch vụ nào còn gửi thư không đạt SPF hoặc DKIM trước khi bật chính sách chặn
  • Phát hiện nguồn giả mạo đang gửi thư dưới tên miền của bạn
  • Gộp báo cáo cả tháng từ nhiều nhà cung cấp thành một bản tóm tắt

Hỏi đáp

Tôi có thể tải lên những file nào?

File XML báo cáo như nhà cung cấp gửi, file nén gzip (.xml.gz, .gz) hoặc .zip, nhiều file một lúc. Báo cáo pháp lý (RUF) và nguyên e-mail (.eml) chưa được hỗ trợ: hãy tách file đính kèm trước, ví dụ bằng API đọc e-mail của chúng tôi.

dmarc: pass ở đây nghĩa là gì?

Bản ghi đạt DMARC khi bên nhận đánh giá DKIM hoặc SPF là pass và căn chỉnh với tên miền From (policy_evaluated). Kết quả xác thực gốc và kiểm tra căn chỉnh của chúng tôi được hiển thị bên cạnh.

Khi nào nên chuyển sang p=quarantine?

Khi mọi nguồn gửi hợp lệ đều đạt, thường là trên 98% lượng thư trong vài tuần. Trường advice sẽ gợi ý khi báo cáo cho thấy điều đó.

API liên quan

Bắt đầu với 1.000 request miễn phí mỗi tháng. Nhận API key miễn phí →