BIMI DNSレコード:l=タグとa=タグの完全解説
BIMI TXTレコードの構文に関する完全な技術リファレンス。l=ロゴタグとa=証明書タグ、サポートされる構成、よくある設定ミスについて解説します。
完全なBIMI DNSレコード
BIMI(Brand Indicators for Message Identification)DNSレコードは、対応するメールクライアントにブランドロゴの取得先と、必要に応じてその所有権を証明する証明書の取得先を伝える単一のTXTレコードです。構文を正確に記述することは必須です。タグが1つでも不正な形式だと、バウンスもエラーログもロゴ表示もない「サイレント障害」が発生します。
本記事では、BIMI TXTレコードのすべての構成要素、各タグを規定するルール、3つの標準的なレコード構成、そしてロゴ表示を静かに破壊する設定ミスについて解説します。
前提条件
BIMIレコードを公開する前に、以下の項目が整っていることを確認してください:
- DMARCポリシーが
p=quarantineまたはp=rejectに設定され、pct=100以上(または同等の強制力)になっていること。 - ロゴファイルがSVG Tiny P/S形式で、公開アクセス可能なHTTPS URLでホストされていること。
- GmailまたはApple Mailを対象とする場合、有効なVMC(Verified Mark Certificate)またはCMC(Common Mark Certificate)がPEM形式で、公開アクセス可能なHTTPS URLでホストされていること。
BIMIレコードの構造
BIMI TXTレコードは以下の一般的な構文に従います:
v=BIMI1; l=<logo-url>; a=<certificate-url>
| タグ | 名称 | 必須 | 説明 |
|-----|------|----------|-------------|
| v= | バージョン | はい | 常にBIMI1。 |
| l= | ロゴURL | はい | SVG Tiny P/Sロゴファイルを指すHTTPS URL。 |
| a= | 認証エビデンス | 条件付き | PEM形式のVMCまたはCMCを指すHTTPS URL。GmailおよびApple Mailでは必須。 |
このレコードは以下のサブドメインにDNS TXTレコードとして公開されます:
default._bimi.<yourdomain.com>
注意: defaultセレクタは、すべての主要メールクライアントで使用される標準セレクタです。カスタムセレクタは仕様でサポートされていますが、受信側での実装はまだ広く普及していません。
l=タグ:ロゴURL
機能
l=タグは、受信メールクライアントがブランドロゴを取得するURLを提供します。メッセージがDMARCアライメントに合格すると、クライアントはこのファイルを取得し、送信者名の横にレンダリングします。
要件
- プロトコル:
https://である必要があります。HTTP URLは拒否されます。 - アクセシビリティ: URLは公開アクセス可能である必要があります。認証、リダイレクト、地域制限は不可です。メールサーバーはこのURLをブラウザからではなく、自社のインフラストラクチャから取得します。
- ファイル形式: ファイルはSVG Tiny P/S(Portable/Secure)に準拠している必要があります。これはSVG 1.2 Tinyの制限されたサブセットです。標準的なSVGファイルは、ブラウザで正しくレンダリングされてもバリデーションに失敗します。
- Content-Typeヘッダー: サーバーは
image/svg+xmlを返す必要があります。 - ファイルサイズ: 32 KB未満に抑えてください。一部の受信側ではより厳しい制限が適用されます。
SVG Tiny P/Sの主な制限事項
SVG Tiny P/Sは、標準的なSVGファイルによく見られる以下の要素と属性を禁止しています:
- 外部参照(
、ファイル外を指すxlink:href) - スクリプト(
) - アニメーション(
、) - ラスター画像の埋め込み
- 任意のフォント(システムフォントのみ、またはテキストをパスに変換したもの)
重要: 有効なSVGであってもSVG Tiny P/Sとして有効でないファイルは、ほとんどのクライアントでロゴ表示がサイレントに失敗します。公開前に必ず専用のBIMI SVGチェッカーでバリデーションを行ってください。
l=を空に設定する
仕様では、l=に空の値(l=;)を設定することが許可されており、レコードを公開しながらドメインのBIMI表示を明示的にオプトアウトできます。これはサブドメイン抑制シナリオで使用されるエッジケースです。
a=タグ:認証エビデンス(証明書URL)
機能
a=タグは、PEM形式のMark Verifying Certificate(VMC)またはCommon Mark Certificate(CMC)を指します。この証明書は、ロゴをドメインに暗号的にバインドし、認定された認証局(CA)によって発行されます。受信メールクライアントはこの証明書を取得し、チェーンを検証し、埋め込まれたロゴがl= URLと一致することを確認してからマークを表示します。
要件
- プロトコル:
https://である必要があります。HTTP URLは拒否されます。 - アクセシビリティ: 認証やリダイレクトなしで公開アクセス可能であること。
- 形式: PEMエンコードされた証明書チェーン(
.pem)。ファイルには、エンドエンティティ証明書から信頼されたルートまでの完全なチェーンが含まれている必要があります。 - 信頼チェーン: 証明書は、受信メールプロバイダーによって認識される信頼されたルートCAにチェーンされている必要があります。自己署名証明書は受け入れられません。
- ロゴハッシュの一致:
l=にあるSVGファイルは、証明書に埋め込まれたロゴハッシュと一致する必要があります。証明書を再発行せずにロゴを更新すると、表示が破壊されます。 - 有効性: 証明書が有効期限切れまたは失効していないこと。
VMC vs CMC
| 証明書タイプ | 正式名称 | 商標登録の要否 | 発行元 | |---|---|---|---| | VMC | Verified Mark Certificate | 必要 — 登録商標が必要 | DigiCert、Entrust | | CMC | Common Mark Certificate | 不要 — コモンローマークで可 | DigiCert、Entrust |
CMCは商標登録の要件を排除することで参入障壁を下げ、より幅広い組織が証明書検証付きのBIMIを利用できるようにしています。
自己申告型と証明書付きレコード
自己申告型レコード(l=のみ、a=なし)
自己申告型レコードにはl=タグのみが含まれます。証明書は参照されません。
default._bimi.example.com. IN TXT "v=BIMI1; l=https:class="hl-cmt">//bimi.example.com/logo.svg;"
機能する環境:
- Yahoo Mail / AOL Mail: DMARCが強制されていれば、証明書なしでロゴを表示します。
- Fastmail: 自己申告型レコードをサポートしています。
機能しない環境:
- Gmail: 有効なVMCまたはCMCが必要です。自己申告型レコードは無視されます。
- Apple Mail: 有効なVMCまたはCMCが必要です。自己申告型レコードは無視されます。
- Microsoft Outlook(365): 独自のBIMI類似システムを使用しています(BIMIは現在ネイティブサポートされていません)。
まとめ: 自己申告型レコードは有効な出発点であり、Yahoo Mailでは価値を提供しますが、GmailやApple Mailでのロゴ表示は実現しません。
VMCレコード(Verified Mark Certificate)
登録商標を保有し、認定CAからVMCを取得している場合は、この構成を使用してください。
default._bimi.example.com. IN TXT "v=BIMI1; l=https:class="hl-cmt">//bimi.example.com/logo.svg; a=https://bimi.example.com/vmc.pem;"
サポート環境: Gmail、Yahoo Mail、Apple Mail、Fastmail、その他すべてのBIMI対応クライアント。
CMCレコード(Common Mark Certificate)
CMCを取得している場合は、この構成を使用してください。DNS レコードの構文はVMCレコードと同一です。違いはレコードではなく、証明書自体にあります。
default._bimi.example.com. IN TXT "v=BIMI1; l=https:class="hl-cmt">//bimi.example.com/logo.svg; a=https://bimi.example.com/cmc.pem;"
サポート環境: Gmail(CMCサポート開始以降)、Yahoo Mail、Apple Mail、Fastmail。
注意: ロールアウトのタイムラインはプロバイダーによって異なるため、対象のメールクライアントの現在のCMCサポート状況を必ず確認してください。
よくある設定ミス
1. 破損したa= URLによるサイレント障害
これは最も深刻で