BIMIトラブルシューティング:ロゴが表示されない原因と解決策(完全ガイド)
BIMIロゴがメールクライアントに表示されない7つの主要な原因を診断・解決します。DMARCポリシー、SVG検証、MIMEタイプ、VMC/CMC証明書、DNSの伝播、クライアントサポートについて詳しく解説します。
BIMIトラブルシューティング:ロゴが表示されない原因と解決策(完全ガイド)
Brand Indicators for Message Identification(BIMI)は、認証されたメールの横にブランドロゴを表示する仕組みをメールボックスプロバイダーに提供します。ロゴが表示されない場合、その原因はほぼ必ず7つの明確な問題のいずれかに該当します。本ガイドでは、発生頻度の高い順に各原因を解説し、具体的な診断手順と解決方法をご紹介します。
はじめに:BIMIロゴ表示の仕組み
受信メールサーバーがメッセージを処理する際、以下のステップを実行します:
- 送信ドメインが強制ポリシーでDMARC認証に合格しているかを確認
default._bimi.でBIMI DNS TXTレコードを参照l=タグに指定されたURLからSVGロゴを取得- (対応が必要なプロバイダーの場合)
a=タグに指定されたURLからVerified Mark Certificate(VMC)またはCommon Mark Certificate(CMC)を検証 - 受信トレイのUIにロゴを表示
いずれかのステップで失敗すると、ロゴは静かに非表示となります。送信者にも受信者にもエラーは表示されません。
原因1:DMARCポリシーがp=quarantineまたはp=rejectになっていない
これがBIMIロゴが表示されない最も一般的な原因です。
Google、Yahoo、Apple、FastmailをはじめとするすべてのBIMI対応メールボックスプロバイダーは、ロゴを表示する前提条件として、p=quarantineまたはp=rejectのDMARCポリシーを要求します。p=noneのポリシーは強制なしとみなされ、BIMIは完全に無視されます。
診断方法
DMARCレコードのDNSルックアップを実行します:
dig TXT _dmarc.yourdomain.com
レスポンスのp=の値を確認してください。また、以下の項目もチェックします:
sp=— サブドメインポリシー。サブドメインからメールを送信している場合、ルートドメインがp=rejectであっても、sp=noneが設定されているとそのサブドメインではBIMIがブロックされます。pct=— パーセンテージタグ。一部のプロバイダーはpct=100を要求します。100未満の値ではロゴ表示が不安定になる場合があります。
解決方法
- ポリシーを引き上げる前に、メール認証(SPFとDKIM)が一貫して合格していることを確認してください。
- DMARCを
p=noneからp=quarantineに移行し、2〜4週間監視します。 - 正当なメールが失敗していないことを確認できたら、
p=rejectに移行します。 pct=100を明示的に設定します。- サブドメインから送信している場合は、
sp=quarantineまたはsp=rejectを追加します。
正しいDMARCレコードの例:
v=DMARC1; p=reject; sp=reject; pct=100; rua=mailto:[email protected];
注意: DMARCポリシーの引き上げはメール配信に影響します。監視フェーズを省略しないでください。
原因2:SVGファイルがHTTPS経由でアクセスできない
メールボックスプロバイダーのサーバーは、レンダリング時にロゴを取得します。ファイルがHTTPS経由で有効な200 OKレスポンス以外を返した場合、ロゴは非表示になります。
よくある副次的原因
| 症状 | 考えられる原因 |
|---|---|
| 404 Not Found | l=タグのURLが間違っている、ファイルが移動または削除された |
| 403 Forbidden | CDNまたはWAFがブラウザ以外のユーザーエージェントをブロックしている |
| 301/302 Redirect | 一部のプロバイダーはリダイレクトをフォローしない |
| SSL certificate error | ホスティングドメインのTLS証明書が期限切れまたは自己署名 |
| HTTP URL | プレーンHTTPは許可されない。HTTPSは必須 |
診断方法
l=タグから正確なURLをコピーします。curlを使用してブラウザ以外からのフェッチをシミュレートしてテストします:
curl -I "https://yourdomain.com/bimi/logo.svg"
- HTTPステータスコード、
Content-Typeヘッダー、リダイレクトの有無を確認します。 - 複数の地理的位置からテストするか、オンラインのHTTPヘッダーチェッカーを使用してジオブロッキングを除外します。
解決方法
- BIMI DNSレコードのURLが、ホストされているファイルパスと完全に一致していることを確認します(大文字小文字を含む)。
- CDNを使用している場合、主要なメールボックスプロバイダーが使用するユーザーエージェントをホワイトリストに追加するか、ボット保護なしでファイルを公開配信するようにCDNを設定します。
- ホスティングドメインに有効で信頼されたTLS証明書(自己署名ではない)があることを確認します。
- リダイレクトが避けられない場合は、
l=タグを最終URLを直接指すように更新します。 - 自社ネットワーク外からファイルにアクセスできることを確認します。
原因3:サーバーが間違ったMIMEタイプを返している
SVGファイルにアクセスできても、メールボックスプロバイダーはサーバーが返すContent-Typeヘッダーを検証します。正しいMIMEタイプはimage/svg+xmlです。text/plain、application/octet-stream、text/htmlなど、それ以外の値ではロゴは拒否されます。
診断方法
curl -I "https://yourdomain.com/bimi/logo.svg"
レスポンスヘッダーのContent-Type行を確認します:
Content-Type: image/svg+xml
それ以外の値が表示されている場合、MIMEタイプの設定に問題があります。
解決方法
解決方法はWebサーバーまたはホスティングプラットフォームによって異なります。
Apache — .htaccessまたはサーバー設定に追加:
AddType image/svg+xml .svg .svgz
Nginx — mime.typesまたはサーバーブロックに追加:
types {
image/svg+xml svg svgz;
}
Amazon S3 / CloudFront — アップロード時にオブジェクトのContent-Typeメタデータをimage/svg+xmlに設定します。S3はMIMEタイプを自動的に推測しません。
Cloudflare Pages / Netlify — _headersファイルを追加:
/bimi/logo.svg
Content-Type: image/svg+xml
変更後、curl -Iチェックを再実行してヘッダーが正しいことを確認してください。
原因4:SVGファイルがW3C Tiny P/S検証に失敗している
BIMIは標準的なSVGファイルを受け付けません。仕様ではSVG Tiny 1.2 Portable/Secure(SVG Tiny P/S)が必要です。これは、信頼されていないコンテキストでの安全なレンダリングを目的として設計された制限付きプロファイルです。Adobe Illustrator、Figma、InkscapeなどのデザインツールからエクスポートされたほとんどのSVGファイルは、修正なしではこのプロファイルに準拠していません。
よくある検証失敗
| 問題 | 失敗の理由 |
|---|---|
| baseProfileがないか間違っている | 要素にbaseProfile="tiny"が必須 |
| version="1.2"属性がない | 仕様で必須 |
| 埋め込みラスター画像() | Tiny P/Sでは許可されていない |
| JavaScriptまたはイベントハンドラー | 厳格に禁止 |
| 外部参照または外部hrefを持つ | 許可されていない |
| CSS @importまたは外部スタイルシート | 許可されていない |
| フィルター、マスク、グラデーション(一部の実装) | サポートが限定的 |
| ファイルがルート要素としてでラップされていない | 構造要件 |
診断方法
- SVGをテキストエディタで開き、開始
タグを確認します。以下が含まれている必要があります:
```xml