開発者向けAPI・ウィジェット仕様
最終更新: 2026-10-06
外部公開の「診断結果保存API」は提供していません。その代わり、外部サイトへ埋め込めるウィジェットと、ブラウザ内でDNS over HTTPSを呼び出す軽量APIを提供します。
scriptウィジェット
<div data-mail-auth-checker></div>
<script async src="https://spf-dkim-dmarc-bimi.com/widget.js"></script>
scriptはページ内の data-mail-auth-checker 要素を探し、widget-frame.html のiframeを挿入します。複数設置も可能です。
ブラウザ内チェックAPI
widget.js を読み込むと、window.MailAuthCheckerLite.check(domain) が使えます。SPF・DKIM・DMARC・BIMIの公開DNSレコードを確認します。DKIMは代表的なセレクタ名を自動走査します(独自のセレクタ名で設定されている場合は見つけられないため、unknown は「未設定」ではなく「確認できず」を意味します)。
<script src="https://spf-dkim-dmarc-bimi.com/widget.js"></script>
<script>
MailAuthCheckerLite.check("sub.domain.com").then(result => {
console.log(result);
});
</script>戻り値の例
{
"domain": "sub.domain.com",
"spf": { "status": "ok", "satisfied": true, "records": ["v=spf1 include:_spf.google.com ~all"] },
"dkim": { "status": "ok", "satisfied": true, "selectors": ["google"] },
"dmarc": { "status": "ok", "satisfied": true, "records": ["v=DMARC1; p=quarantine;"],
"policy": "quarantine", "subPolicy": null, "strict": false, "inheritedFrom": null },
"bimi": { "status": "none", "records": [] },
"risk": "low",
"riskReason": "ok",
"isProviderDomain": false,
"isHostingInitialDomain": false,
"canSelfConfigure": true,
"checkedAt": "2026-07-28T12:00:00.000Z"
}
戻り値のJSON Schemaは /api/check.schema.json で公開しています。
spf.status の delegated について
オレンジメールのように送信元ドメイン(Return-Path)を委譲する方式の配信サービスでは、ドメイン本体に v=spf1 のTXTを置きません。代わりに omspf.<ドメイン> のCNAMEで委譲し、SPFの中身は配信サービス側が管理します。この場合、そのサービスからの配信はSPF認証を通ります。
ドメイン本体にSPFが無くても委譲先にあるときは、"none" ではなく "delegated" を返します。DMARCの "inherited" と同じく「満たされている」側として扱ってください。
"spf": {
"status": "delegated",
"records": ["v=spf1 ip4:… -all"],
"delegatedVia": "omspf.yourdomain.com",
"delegatedService": "オレンジメール"
}
status === "ok" だけで見ないでください。SPFは "ok" と "delegated"、DMARCは "ok" と "inherited" が「設定できている」状態です。satisfied — 状態を数えずに済ませる
各項目には satisfied(真偽値)が付きます。判定はこれだけを見てください。
// 推奨
if (!result.spf.satisfied) missing.push("SPF");
// 非推奨(状態が増えるたびに壊れる)
if (result.spf.status !== "ok") missing.push("SPF");
状態は今後も増えます。実際に "delegated" を追加したとき、status !== "ok" で判定していた埋め込み側が、正しく設定できているドメインを「未設定」と表示し続けるという事故が起きました。satisfied はサイト本体と同じ判定(src/core.js)から作られるので、診断ページ・API・埋め込みで必ず一致します。
risk の意味
rejected… いま実際に受け取り拒否されている可能性が高い状態。プロバイダー・レンタルサーバー初期ドメイン限定です(利用者がDNSを設定できず自力で解消できない。実測のバウンスログで確認済み)high… DMARCが強い設定(p=reject / quarantine)なのに、DKIMを確認できていない状態(riskReason: "enforced_dkim_unverified")。この簡易チェックはDKIMの不在を確定できない(独自セレクタの可能性が残る)ため、お客様所有のドメインをrejectedと断定することはありませんmedium… SPF・DKIM・DMARCのいずれかに欠けがある(SPFのdelegated、DMARCのinheritedは欠けとして数えません)low… 3大必須設定がすべて確認できた
注意点
- 実行元サイトのCSPで
https://dns.googleまたはhttps://cloudflare-dns.comへの接続が禁止されている場合、ブラウザ内APIは動きません。その場合はiframe方式を使ってください - APIの結果はDNS公開情報の確認であり、実際の送信品質、迷惑メール率、配信リストの状態、本文内容は判定できません
- 大量アクセスや定期スキャン用途ではなく、ユーザー操作に応じた軽量チェックを想定しています