Skip to content
QKQuickKit日本語
EmailLOCALRuns in your browser

DMARC Record Parser

Parse and statically check one DMARC record using current RFC 9989 semantics, including test mode, PSD policy, report URIs, and historic tags. No DNS is resolved.

This tool handles input and primary processing in your browser and is designed not to send the input to QuickKit’s server.

Tags

TagRaw valueInterpreted valueStatus

RFC 9989 values

Findings

    How it works

    Paste one RFC 9989 DMARC record, with or without quoted DNS character strings. It must start with exactly one version tag; the tag name v is case insensitive, while the only valid value DMARC1 is case sensitive. A later v or V invalidates the record. Other tag names follow RFC 6376 case-sensitive semantics. Generic tag values must contain only the RFC 9989 printable ASCII range excluding semicolon; rua and ruf additionally permit SP or HTAB around URI-list commas, but never inside an individual URI. Syntax-invalid tags remain visible but their values never enter policy, reporting, or default calculations. A syntax-invalid p, sp, or np still counts as a present invalid policy tag for the RFC 9989 reporting-fallback decision. A duplicate tag makes the entire tag-list invalid. If p is omitted, current DMARC processing defaults it to none. If p, sp, or np is present but invalid, processing continues as p=none only when rua contains at least one syntactically valid reporting URI; otherwise DMARC does not apply. The t=y test mode lowers the policy expected to be applied by one level, while psd defaults to u. The RFC 7489-only pct, rf, and ri tags are shown as historic and ignored. Published rua/ruf values are shown separately from their syntactically valid effective destinations. URIs use RFC 3986 grammar; comma and exclamation mark must be percent-encoded inside a URI. The old !size suffix is accepted as obsolete syntax and explicitly marked as ignored. fo is effective only when at least one valid ruf destination exists. Under RFC 9991, a psd=y record's valid ruf and fo remain published but are not unconditionally effective; report generators may use them only under specific agreements between the interested parties. Provide the record domain to flag simple mailto destinations outside its exact domain tree. This static analyzer never queries DNS, performs the RFC 9989 DNS Tree Walk, verifies such an agreement, or verifies external-report authorization.