AppleメールでのBIMI対応に向けたメールサーバの準備

macOS Ventura 13、iOS 16、iPadOS 16以降のAppleメールでは、BIMI(Brand Indicators for Message Identification)に対応します。これは、各ブランドの組織が提供する情報に基づいて、ブランド管理されたロゴをメールクライアントで表示できるようにするメール仕様です。BIMIの仕組みの概要と、BIMIロゴをAppleメールのクライアントで表示させる方法について説明します。

概要

BIMIは、正しい組織から発信されたメッセージに対してのみ、ロゴが表示されるように設計されています。BIMI12は、ドメインでDMARC(Domain-based Message Authentication, Reporting & Conformance)を利用し、ドメインのなりすましを防ぐ技術です。また、VMC(Verified Mark Certificates)34やその他の形態のBIMI Evidence Documentも利用し、ロゴの所有権や真正性、ロゴと該当するドメインとの紐付けを検証します。

BIMIへの準拠は、サーバ上のメールプロバイダによって管理されます。メールプロバイダが以下を実行した場合、Appleメールで組織のロゴがメールメッセージに表示されます。

  • メッセージとドメインがBIMIの仕様に準拠していることを確認
  • BIMI Evidence Document(例:メールプロバイダによって信頼されているVMC)を検証
  • 「Appleメールのクライアントへの対応」で説明されているチェックを保証する必須ヘッダを追加

メールプロバイダが特定のメールメッセージに対してこれらのアクションを実行していない場合、Appleメール上の当該メッセージには組織のロゴが表示されません。

Appleメールのクライアントへの対応

BIMIの仕様で挙げられている要件に加えて、Appleメールのクライアントでは、メールプロバイダがDKIM(DomainKeys Identified Mail)署名を挿入することも求められています。この署名は、bimiステートメントを含むAuthentication-Resultsヘッダ(メールプロバイダ自身のヘッダも必要)をカバーする必要があります。この追加要件は、挿入されたBIMIヘッダをAppleメールのクライアントが信頼する基盤となります。

有効なBIMI準拠のメールには、以下のヘッダがすべて含まれています(以下の説明の通りに構成されている必要があります)。

  • DKIM-signatureヘッダ。h値には、サーバが挿入したものも含め、すべてのAuthentication-Resultsが含まれていること
    • d値は、受信メールサーバと同じ組織ドメイン(eTLD+1)であること
    • l値は0であること
  • bimi=passおよびpolicy.authority=passが含まれたAuthentication-Resultsヘッダ
    • authserv-id値は、以下のいずれかと同じ組織ドメインを持っていること
      • 受信メールサーバ
      • 最初の(直近に追加された)Authentication-Resultsヘッダのauthserv-id
  • l値およびa値の両方を含むBIMI-Locationヘッダ
  • BIMI-Indicatorヘッダ

ヘッダ例

このセクションの例はすべて、メールサーバがimap.example.comであると仮定しています。

正しい形式のメールヘッダ

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.com;
    s=foo1234; t=1645949369;
    bh=bYktD+FKmAvkst9op6KYg+JHRznF/tB4agLqrbfatKo=; l=0;
    h=Authentication-Results:Authentication-Results:Authentication-Results:Authentication-Results:From;
    b=tpMLTXB...kQ==
Authentication-Results: bimi.example.com;
    bimi=pass header.d=examplesender.com header.selector=default
    policy.authority=pass
    policy.authority-uri=https://media.examplesender.com/media/vmc.pem
Authentication-Results: dmarc.example.com;
    dmarc=pass header.from=examplesender.com
Authentication-Results: dkim-verifier.example.com;
    dkim=pass (2048-bit key) header.d=examplesender.com header.i=@examplesender.com
    header.b=GyICAm88
Authentication-Results: spf.example.com;
    spf=pass smtp.mailfrom="delivery1234@send.examplesender.com"
BIMI-Indicator: eZvIB...kQ==
BIMI-Location: v=BIMI1;
    l=https://media.examplesender.com/media/logo.svg
    a=https://media.examplesender.com/media/vmc.pem

正しくない形式のヘッダ(DKIMドメインが間違っている)

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wrongdomain.com;
    s=foo1234; t=1645949369;
    bh=bYktD+FKmAvkst9op6KYg+JHRznF/tB4agLqrbfatKo=; l=0;
    h=Authentication-Results:Authentication-Results:Authentication-Results:Authentication-Results:From;
    b=tpMLTXB...kQ==
Authentication-Results: bimi.example.com;
    bimi=pass header.d=examplesender.com header.selector=default
    policy.authority=pass
    policy.authority-uri=https://media.examplesender.com/media/vmc.pem
Authentication-Results: dmarc.example.com;
    dmarc=pass header.from=examplesender.com
Authentication-Results: dkim-verifier.example.com;
    dkim=pass (2048-bit key) header.d=examplesender.com header.i=@examplesender.com
    header.b=GyICAm88
Authentication-Results: spf.example.com;
    spf=pass smtp.mailfrom="delivery1234@send.examplesender.com"
BIMI-Indicator: eZvIB...kQ==
BIMI-Location: v=BIMI1;
    l=https://media.examplesender.com/media/logo.svg
    a=https://media.examplesender.com/media/vmc.pem

正しくない形式のヘッダ(Authentication-Resultsドメインが間違っている)

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.com;
    s=foo1234; t=1645949369;
    bh=bYktD+FKmAvkst9op6KYg+JHRznF/tB4agLqrbfatKo=; l=0;
    h=Authentication-Results:Authentication-Results:Authentication-Results:Authentication-Results:From;
    b=tpMLTXB...kQ==
Authentication-Results: dkim-verifier.example.com;
    dkim=pass header.d=example2.com header.i=@example2.com
    header.b=tfwjEzge
Authentication-Results: bimi.wrongdomain.com;
    bimi=pass header.d=examplesender.com header.selector=default
    policy.authority=pass
    policy.authority-uri=https://media.examplesender.com/media/vmc.pem
Authentication-Results: dmarc.example.com;
    dmarc=pass header.from=examplesender.com
Authentication-Results: dkim-verifier.example.com;
    dkim=pass (2048-bit key) header.d=examplesender.com header.i=@examplesender.com
    header.b=GyICAm88
Authentication-Results: spf.example.com;
    spf=pass smtp.mailfrom="delivery1234@send.examplesender.com"
BIMI-Indicator: eZvIB...kQ==
BIMI-Location: v=BIMI1;
    l=https://media.examplesender.com/media/logo.svg
    a=https://media.examplesender.com/media/vmc.pem