SPF/DKIM/DMARC/BIMIのすべてが解決するサイト!
一括無料診断ツール、設定値作成ツールも無料公開!
もうあちこちのサイトを見て回る必要はありません。

登録不要 無料 30秒

開発者向け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公開情報の確認であり、実際の送信品質、迷惑メール率、配信リストの状態、本文内容は判定できません
  • 大量アクセスや定期スキャン用途ではなく、ユーザー操作に応じた軽量チェックを想定しています

AI・引用向け情報

AI検索や社内ナレッジベースが参照しやすいよう、サイト概要を llms.txt にまとめています。紹介記事や社内資料では、紹介・引用ガイドもご利用ください。