BIMI(Brand Indicators for Message Identification)
概要
BIMI(Brand Indicators for Message Identification) は、DMARC 認証に合格したメールの送信者アイコンに、企業やブランドのロゴを表示する仕組みです。BIMI Group が仕様を策定し、Gmail、Yahoo Mail、Apple Mail などが対応しています。
BIMI の最大の特徴は「視覚的なトラストシグナル」です。受信者はロゴを見て、そのメールが本物のブランドから送られたことを直感的に確認できます。Gmail では VMC(Verified Mark Certificate)で認証されたロゴの隣に青いチェックマークが付き、フィッシングメールとの区別が視覚的に明確になります。
BIMI を利用するには DMARC ポリシーが p=quarantine または p=reject に設定されていることが前提です。p=none では BIMI は動作しません。SPF、DKIM、DMARC の正しい設定がすべて揃った上で、はじめて BIMI を設定する意味があります。
仕組み
BIMI は DMARC 認証の結果を起点として、DNS の TXT レコードからロゴ URL と証明書を取得し、受信トレイに表示します。
BIMI の動作フローは次の通りです。
- 受信したメールが DMARC 認証(SPF または DKIM のアライメント pass)を通過する
- 受信サーバーが
default._bimi.ドメインの TXT レコードを参照する l=タグで指定された SVG ロゴ URL を取得するa=タグに VMC または CMC が指定されていれば、証明書を取得して検証する- 検証が完了すると、受信トレイにブランドロゴが表示される
証明書なしでも BIMI レコードを発行できますが、Gmail はロゴを表示しません。Gmail でロゴを表示するには VMC または CMC が必須です。Yahoo Mail は証明書なしでもロゴを表示することがあります。
VMC と CMC の違い
VMC(Verified Mark Certificate) は登録商標を持つブランドが取得できる証明書です。DigiCert、GlobalSign、Entrust などの認証局が発行します。Gmail では VMC で認証されたロゴの隣に青いチェックマークが表示されます。取得には商標登録の証明と本人確認が必要で、費用は年間 1,499 ドル程度、取得まで 2〜4 週間かかります。
CMC(Common Mark Certificate) は 2024 年に Google が対応を発表した新しい証明書です。商標登録がなくても、12 ヶ月以上のロゴ使用実績を示すことで取得できます。CMC では Gmail のチェックマークは表示されませんが、ロゴ自体は表示されます。費用は年間 1,099 ドル程度で、取得まで 1〜3 週間です。現在 Gmail と Yahoo Mail が CMC に対応しています。
設定例
BIMI レコードの DNS 設定と SVG ファイルの要件を示します。
基本形式
BIMI レコードの基本形式です。
default._bimi.example.com. IN TXT "v=BIMI1; l=https://example.com/logo.svg; a=https://example.com/vmc.pem"
証明書なしで試す場合
証明書なしで試す場合(一部のメールクライアントのみ表示)は a= タグを省略します。
default._bimi.example.com. IN TXT "v=BIMI1; l=https://example.com/logo.svg"
l= で指定する SVG ファイルは HTTPS で提供する必要があります。HTTP は無効です。
SVG ファイルの要件
BIMI が要求する SVG は一般的な SVG ではなく、W3C が定める SVG Tiny 1.2 をさらに厳格にした SVG Portable/Secure(Tiny PS)プロファイルに準拠したファイルです。
主な制約は次の通りです。
- ファイルサイズは 32KB 以下
<svg>要素にbaseProfile="tiny-ps"属性が必要- 外部ファイルへの参照、スクリプト、アニメーションは使用不可
- 背景は透明ではなく、ソリッドカラーが推奨
<title>要素にブランド名を含める- 画像は正方形ベースで中央配置(メールクライアントが円形にトリミングするため)
Adobe Illustrator や Inkscape でエクスポートした SVG はそのままでは Tiny PS に準拠していません。BIMI Group が提供するバリデーションツールや、EasyDMARC の BIMI SVG Converter を使って変換・確認します。
確認方法
BIMI レコードの内容は dig で確認できます。
dig TXT default._bimi.example.com
;; ANSWER SECTION:
default._bimi.example.com. 3600 IN TXT "v=BIMI1; l=https://example.com/logo.svg; a=https://example.com/vmc.pem"
v=BIMI1 で始まる行が返れば、レコードが存在しています。l= タグで SVG の URL、a= タグで証明書の URL を確認します。
外部の視点からも確認したい場合は、Labee Dev Toolbox の Mail Auth API を使うと、外部の視点から見た結果を取得できます。
curl "https://labee.dev/api/mail-auth?domain=example.com"
{
"success": true,
"data": {
"spf": { "record": "v=spf1 include:_spf.google.com ~all", "exists": true },
"dkim": { "record": "v=DKIM1; k=rsa; p=MIIBIjANBgkqh...", "exists": true, "selector": "default" },
"dmarc": { "record": "v=DMARC1; p=reject; rua=mailto:dmarc@example.com", "exists": true },
"bimi": {
"record": "v=BIMI1; l=https://example.com/logo.svg; a=https://example.com/cert.pem",
"exists": true
}
},
"error": null,
"meta": { "responseTime": 123 }
}
data.bimi フィールドで BIMI レコードの有無と内容を確認できます。DMARC が p=none のままだと BIMI は機能しないため、先に data.dmarc.record でポリシーを確認します。
よくある問題
BIMI の設定で陥りやすいミスと、ロゴが表示されない原因を整理します。
DMARC ポリシーが p=none のまま
BIMI の動作条件を満たしていないため、BIMI レコードを発行しても Gmail も Yahoo も表示しません。DMARC を p=quarantine 以上に移行してから BIMI を設定します。
SVG が Tiny PS 形式に準拠していない
一般的な SVG ファイルをそのまま使うケースが多く、外部フォントの参照やスクリプトが含まれているとバリデーションで弾かれます。BIMI Group の SVG バリデーターで確認してから DNS に設定します。
l= URL が HTTP または証明書エラー
SVG の URL は必ず HTTPS で、かつ正しい TLS 証明書が設定されたサーバーから提供します。リダイレクトも避けるべきで、最終的な URL が直接 SVG を返す形にします。
a= の PEM ファイルが正しくない
VMC または CMC の PEM ファイルを a= に指定しますが、ルート証明書まで含めた証明書チェーン全体が必要です。証明書のみで中間証明書が抜けていると検証に失敗します。
証明書の有効期限を管理しない
VMC / CMC は年間更新が必要です。期限切れになるとロゴ表示が停止します。証明書の有効期限を監視対象に加え、有効期限の 30 日前には更新手続きを始めます。
他の認証方式との関係
BIMI は SPF、DKIM、DMARC という 3 層の認証が揃った上でのみ機能します。SPF と DKIM が pass し、DMARC がアライメントを確認して p=quarantine / p=reject で強制します。その状態で BIMI レコードを発行し、VMC または CMC を取得することで受信トレイでのロゴ表示が実現します。
逆に言えば、BIMI の設定が機能しているドメインは、メール認証の 4 つの仕様すべてを正しく設定・運用しているという意味を持ちます。