

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 電子郵件身分驗證方法
<a name="email-authentication-methods"></a>

Amazon Simple Email Service (Amazon SES) 使用簡易郵件傳輸協定 (SMTP) 來傳送電子郵件。由於 SMTP 本身不提供任何身分驗證功能，垃圾郵件發信者可以隱藏真正的原始伺服器，並傳送聲稱由他人寄出的電子郵件訊息。垃圾郵件發信者偽造電子郵件標題和冒充的來源 IP 地址，用以誤導收件人相信自己收到的電子郵件訊息是可信的。

大多數轉發電子郵件流量的 ISP 將採取措施來評估電子郵件是否具真實性。ISP 採取的其中一項措施是判斷電子郵件是否經身分身分驗證。身分驗證要求寄件者確認他們是傳出電子郵件之帳戶的持有者。在某些情況下，ISP 將拒絕轉發未經身分驗證的電子郵件。為確保最佳可交付性，我們建議您驗證電子郵件身分。

**Topics**
+ [在 Amazon SES 中透過 DKIM 驗證電子郵件](send-email-authentication-dkim.md)
+ [在 Amazon SES 中透過 SPF 驗證電子郵件](send-email-authentication-spf.md)
+ [使用自訂「寄件人」網域](mail-from.md)
+ [遵守 Amazon SES 中的 DMARC 身份驗證協議](send-email-authentication-dmarc.md)
+ [在 Amazon SES 中使用 BIMI](send-email-authentication-bimi.md)

# 在 Amazon SES 中透過 DKIM 驗證電子郵件
<a name="send-email-authentication-dkim"></a>

*網域金鑰識別郵件* (*DKIM*) 是一項電子郵件安全性標準，旨在確保聲稱來自特定網域的電子郵件確實是由該網域的擁有者授權傳送。它使用公有金鑰加密法來使用私密金鑰簽署電子郵件。接著，收件人伺服器可以使用發佈至網域 DNS 的公有金鑰來確認電子郵件的各個部分在傳輸期間未被修改。

DKIM 簽章可選用。您可以決定是否使用 DKIM 簽章來簽署電子郵件，以於透過符合 DKIM 規範的電子郵件供應商提升遞送度。Amazon SES 提供兩種選項來使用 DKIM 簽章簽署您的訊息：
+ **Easy DKIM**：SES 會產生公有-私有金鑰對，並自動將 DKIM 簽章新增至您由此身分傳送的每個訊息，請參閱 [Amazon SES 中的 Easy DKIM](send-email-authentication-dkim-easy.md)。
+ **確定性 Easy DKIM (DEED)**：透過 AWS 區域 建立可自動繼承 DKIM 簽署屬性作為使用 Easy DKIM 之父系身分的複本身分，可讓您跨多個 維持一致的 DKIM 簽署，請參閱 [在 Amazon SES 中使用確定性 Easy DKIM (DEED)](send-email-authentication-dkim-deed.md)。
+ **BYODKIM (使用自有 DKIM)**：提供自有公有-私有金鑰對，以便讓 SES 新增 DKIM 簽章至您由此身分傳送的每封郵件，請參閱 [在 Amazon SES 中提供您自己的 DKIM 身分驗證字符 (BYODKIM)](send-email-authentication-dkim-bring-your-own.md)。
+ **手動新增 DKIM 簽章**：將您自己的 DKIM 簽章新增至使用 `SendRawEmail` API 傳送的電子郵件，請參閱 [在 Amazon SES 中手動執行 DKIM 簽署](send-email-authentication-dkim-manual.md)。

## DKIM 簽署金鑰長度
<a name="send-email-authentication-dkim-1024-2048"></a>

由於許多 DNS 供應商現在完全支援 DKIM 2048 位元 RSA 加密，Amazon SES 也支援 DKIM 2048 以實現更安全的電子郵件身分驗證，因此在從 API 或主控台設定 Easy DKIM 時使用它作為預設的金鑰長度。也可在「使用自有 DKIM (BYODKIM)」中設定和使用 2048 位元金鑰，其中您的簽署金鑰長度必須至少為 1024 位元且不超過 2048 位元。

為了安全性以及您的電子郵件的傳遞能力，當設定為 Easy DKIM 時，您可以選擇使用 1024 和 2048 位元金鑰長度，以及在發生由仍然不支援 2048 的 DNS 供應商所造成的任何問題時靈活地回復到 1024 位元。*建立新的身分時，除非您指定 1024，否則會預設 DKIM 2048 來建立身分。*

為了保留傳輸電子郵件的可交付性，您變更 DKIM 金鑰長度的頻率有一定限制。限制包括：
+ 無法切換到已設定的金鑰長度。
+ 無法在 24 小時內多次切換到不同的金鑰長度 (除非這是該期間的第一次降級到 1024)。

當您的電子郵件在傳輸過程中時，DNS 會使用您的公有金鑰來驗證電子郵件；因此，如果您變更金鑰太快或過於頻繁，DNS 可能無法對您的電子郵件進行 DKIM 驗證，因為之前的金鑰可能已經失效。因此，這些限制可以防範上述問題。

## DKIM 考量因素
<a name="send-email-authentication-dkim-easy-considerations"></a>

當您使用 DKIM 來驗證電子郵件時，會套用以下規則：
+ 您只需要針對 "From" 地址中使用的網域設定 DKIM。您不需要針對 "Return-Path" 或 "Reply-to" 地址中使用的網域設定 DKIM。
+ Amazon SES 可在數個 AWS 區域使用。如果您使用多個 AWS 區域來傳送電子郵件，則必須完成每個區域的 DKIM 設定程序，以確保所有電子郵件均有 DKIM 簽章。
+ 由於 DKIM 屬性是繼承自父系網域，因此當您使用 DKIM 身分驗證來驗證網域時：
  + DKIM 身分驗證也將套用到該網域的所有子網域。
    + 如果您不希望子網域使用 DKIM 身分驗證以及稍後要重新啟用的功能，則可以透過停用繼承讓子網域的 DKIM 設定覆寫父系網域的設定。
  + DKIM 驗證也將套用到所有從參考其地址中 DKIM 身分驗證網域的電子郵件身分發送的電子郵件。
    + 如果您希望發送郵件而不進行 DKIM 身分驗證，可以透過停用繼承來讓電子郵件地址的 DKIM 設定覆寫子網域 (如果適用) 和父系網域的設定，以及以後要重新啟用的功能。

## 了解繼承的 DKIM 簽署屬性
<a name="dkim-easy-setup-email-key-points"></a>

首先必須了解，如果使用 DKIM 設定父系網域，電子郵件地址身分會從父系網域繼承其 DKIM 簽署屬性，不論是否使用 Easy DKIM 或 BYODKIM。因此，停用或啟用電子郵件地址身分上的 DKIM 簽署，實際上是根據以下重要事實覆寫網域的 DKIM 簽署屬性：
+ 如果您已設定電子郵件地址所屬網域的 Easy DKIM，即不需要一併為電子郵件地址身分啟用 DKIM 簽署。
  + 當您為某個網域設定 DKIM 時，Amazon SES 會自動透過從父系網域繼承的 DKIM 屬性驗證來自該網域每個地址的每封電子郵件。
+ 特定電子郵件地址身分的 DKIM 設定會*自動覆寫該地址所屬父系網域或子網域 (如適用) 的設定*。

由於電子郵件地址身分的 DKIM 簽署屬性是繼承自父系網域，因此如果您打算覆寫這些屬性，您必須牢記覆寫的階層規則，如下表所述。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/ses/latest/dg/send-email-authentication-dkim.html)

通常不建議停用 DKIM 簽署，因為有可能會損害寄件者評價，而且會增加將您傳送的郵件送往垃圾郵件資料夾或網域遭到假冒的風險。

不過，可以因應任何特定使用案例或異常業務決策，而覆寫電子郵件地址身分上的網域繼承 DKIM 簽署屬性，以永久或暫時停用 DKIM 簽署，或稍後再重新啟用。請參閱[覆寫電子郵件地址身分上的繼承 DKIM 簽署](send-email-authentication-dkim-easy-managing.md#send-email-authentication-dkim-easy-setup-email)。

# Amazon SES 中的 Easy DKIM
<a name="send-email-authentication-dkim-easy"></a>

當您為某個網域身分設定 Easy DKIM 時，Amazon SES 會自動為該身分傳送的每封電子郵件新增一個 2048 位元 DKIM 金鑰。您可以使用 Amazon SES 主控台或 API 來設定 Easy DKIM。

**注意**  
若要設定 Easy DKIM，您必須修改您網域的 DNS 設定。如果您使用 Route 53 做為 DNS 供應商，Amazon SES 可自動為您建立適當的記錄。如果您使用其他 DNS 供應商，請參閱您的供應商文件以進一步了解如何變更網域的 DNS 設定。

**警告**  
如果您目前已啟用 BYODKIM 並正在轉移到 Easy DKIM，請注意，在設定 Easy DKIM 且您的 DKIM 狀態處於待定狀態時，Amazon SES 不會使用 BYODKIM 登入您的電子郵件。從您呼叫啟用 Easy DKIM(透過 API 或主控台)到 SES 可以確認您的 DNS 組態的那一刻，您的電子郵件可能會由 SES 傳送，而無需 DKIM 簽章。因此，建議使用中繼步驟從一種 DKIM 簽署方法遷移到另一種方法(例如，使用啟用了 BYODKIM 的子網域，然後在 Easy DKIM 驗證通過後將其刪除)，或者在應用程式停機期間執行此活動(如果有)。

## 為已驗證網域身分設定 Easy DKIM
<a name="send-email-authentication-dkim-easy-setup-domain"></a>

本節中的過程經過簡化，只顯示在已建立的網域身分上設定 Easy DKIM 所需的步驟。若您尚未建立網域身分，或想要查看自訂網域身分的所有可用選項，例如使用預設組態集、自訂的「寄件人」網域和標籤，請參閱 [建立網域身分](creating-identities.md#verify-domain-procedure)。

建立 Easy DKIM 網域身分的一部分任務是設定其 DKIM 型驗證，其中可以選擇接受 Amazon SES 預設值 2048 位元，或透過選取 1024 位元來覆蓋預設值。請參閱 [DKIM 簽署金鑰長度](send-email-authentication-dkim.md#send-email-authentication-dkim-1024-2048)，深入了解 DKIM 簽署金鑰長度以及如何變更金鑰長度。

**為網域設定 Easy DKIM**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/ses/](https://console.aws.amazon.com/ses/)：// 開啟 Amazon SES 主控台。

1. 在導覽窗格中的**組態**下，選擇**身分**。

1. 在身分清單中，選擇 **Identity type (身分類型)** 是 *Domain (網域)* 的身分。
**注意**  
如果您需要建立或驗證網域，請參閱 [建立網域身分](creating-identities.md#verify-domain-procedure)。

1. 在 **Authentication (身分驗證)** 索引標籤下方的 **網域金鑰識別郵件 (DKIM)** 容器中，選擇 **Edit (編輯)**。

1. 在 **Advanced DKIM settings (進階 DKIM 設定)** 容器中，選擇 **Identity type (身分類型)** 欄位中的 **Easy DKIM** 按鈕。

1. 在 **DKIM signing key length (DKIM 簽署金鑰長度)** 欄位中，選擇 [**RSA\$12048\$1BIT** 或 **RSA\$11024\$1BIT**](send-email-authentication-dkim.md#send-email-authentication-dkim-1024-2048)。

1. 在 **DKIM signatures (DKIM 簽章)** 欄位中，選中 **Enabled (已啟用)** 方塊。

1. 選擇**儲存變更**。

1. 現在您已使用 Easy DKIM 設定了網域身分，您必須透過 DNS 提供者完成驗證程序：繼續執行 [透過 DNS 提供者驗證 DKIM 網域身分](creating-identities.md#just-verify-domain-proc)，然後按照 Easy DKIM 的 DNS 身分驗證程序。

## 變更身分的 Easy DKIM 簽署金鑰長度
<a name="send-email-authentication-dkim-easy-managing-change-key-length"></a>

本節中的程序顯示如何輕鬆變更簽署演算法所需的 Easy DKIM 位元。雖然由於其提供的增強安全性，始終優先使用 2048 位元的簽署長度，但在某些情況下可能需要使用 1024 位元長度，例如必須使用只支援 DKIM 1024 的 DNS 供應商。

為了保留傳輸電子郵件的交付能力，您可以變更或翻轉 DKIM 金鑰長度的頻率有一定限制。

當您的電子郵件在傳輸過程中時，DNS 會使用您的公有金鑰來驗證電子郵件；因此，如果您變更金鑰太快或過於頻繁，DNS 可能無法對您的電子郵件進行 DKIM 身分驗證，因為之前的金鑰可能已經失效。因此，下列限制可防範此問題：
+ 您無法切換到與已設定的金鑰長度相同的金鑰長度。
+ 您無法在 24 小時內多次切換至不同的金鑰長度 (除非是該期間的第一次降級至 1024)。

在使用以下程序變更您的金鑰長度時，如果您刪除其中一個限制，主控台將返回一個錯誤橫幅，指出*您提供的輸入無效*以及無效的原因。

**若要變更 DKIM 簽署金鑰長度位元**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/ses/](https://console.aws.amazon.com/ses/)：// 開啟 Amazon SES 主控台。

1. 在導覽窗格中的 **Configuration (組態)** 下，選擇 **Verified identities (已驗證身分)**。

1. 在身分清單中，選擇您希望變更 DKIM 簽署金鑰長度的身分。

1. 在 **Authentication (身分驗證)** 索引標籤下方的 **網域金鑰識別郵件 (DKIM)** 容器中，選擇 **Edit (編輯)**。

1. 在 **Advanced DKIM settings** (進階 DKIM 設定) 容器的 **DKIM signing key length** (DKIM 簽署金鑰長度) 欄位中，選擇 [**RSA\$12048\$1BIT** 或 **RSA\$11024\$1BIT**](send-email-authentication-dkim.md#send-email-authentication-dkim-1024-2048)。

1. 選擇**儲存變更**。

# 在 Amazon SES 中使用確定性 Easy DKIM (DEED)
<a name="send-email-authentication-dkim-deed"></a>

確定性 Easy DKIM (DEED) 提供跨多個 管理 DKIM 組態的解決方案 AWS 區域。透過簡化 DNS 管理並確保一致的 DKIM 簽署，DEED 可協助您簡化多區域電子郵件傳送操作，同時維持強大的電子郵件身分驗證實務。

## 什麼是確定性 Easy DKIM (DEED)？
<a name="what-is-deed"></a>

確定性 Easy DKIM (DEED) 是一種功能， AWS 區域 可根據使用 [Easy DKIM 設定的父系網域，在所有 中產生一致的 DKIM](send-email-authentication-dkim-easy.md) 字符。這可讓您複寫不同 中的身分 AWS 區域 ，以自動繼承和維護與目前使用 Easy DKIM 設定之父系身分相同的 DKIM 簽署組態。使用 DEED，您只需發佈父身分的 DNS 記錄一次，複本身分將使用相同的 DNS 記錄來驗證網域擁有權和管理 DKIM 簽署。

透過簡化 DNS 管理並確保一致的 DKIM 簽署，DEED 可協助您簡化多區域電子郵件傳送操作，同時維持最佳的電子郵件身分驗證實務。

討論 DEED 時使用的術語：
+ **父系身分** – 使用 Easy DKIM 設定的已驗證身分，做為複本身分的 DKIM 組態來源。
+ **複本身分** – 共用相同 DNS 設定和 DKIM 簽署組態的父身分複本。
+ **父區域** – AWS 區域 設定父身分的 。
+ **複本區域** – AWS 區域 設定複本身分的 。
+ **DEED 身分** – 用作父身分或複本身分的任何身分。（建立新身分時，一開始會將其視為一般 （非 DEED) 身分。 不過，建立複本後，身分就會被視為 DEED 身分。)

使用 DEED 的主要優點包括：
+ **簡化 DNS 管理** – 僅發佈父系身分的 DNS 記錄一次。
+ **更輕鬆的多區域操作** – 簡化將電子郵件傳送操作擴展到新區域的程序。
+ **降低管理開銷** – 從父系身分集中管理 DKIM 組態。

## 確定性 Easy DKIM (DEED) 的運作方式
<a name="how-deed-works"></a>

當您建立複本身分時，Amazon SES 會自動將 DKIM 簽署金鑰從父身分複寫至複本身分。對父身分所做的任何後續 DKIM 金鑰輪換或金鑰長度變更都會自動傳播到所有複本身分。

此程序涉及下列工作流程：

1.  AWS 區域 使用 Easy DKIM 在 中建立父系身分。

1. 設定父系身分所需的 DNS 記錄。

1. 在其他 中建立複本身分 AWS 區域，指定父身分的網域名稱和 DKIM 簽署區域。

1. Amazon SES 會自動將父系的 DKIM 組態複寫至複本身分。

重要考量：
+ 您無法建立已經是複本之身分的複本。
+ 父身分必須啟用 [Easy DKIM](send-email-authentication-dkim-easy.md) - 您無法建立 BYODKIM 複本或手動簽署的身分。
+ 在刪除所有複本身分之前，無法刪除父身分。

## 使用 DEED 設定複本身分
<a name="setting-up-replica-identity"></a>

本節將提供範例，示範如何使用 DEED 以及必要的許可來建立和驗證複本身分。

**Topics**
+ [建立複本身分](#creating-replica-identity)
+ [驗證複本身分組態](#verifying-replica-identity)
+ [使用 DEED 所需的許可](#required-permissions)

### 建立複本身分
<a name="creating-replica-identity"></a>

若要建立複本身分：

1. 在您要建立複本身分 AWS 區域 的 中，開啟位於 https：//[https://console.aws.amazon.com/ses/](https://console.aws.amazon.com/ses/) 的 SES 主控台。

   （在 SES 主控台中，複本身分稱為*全域身分*。)

1. 在導覽窗格中，選擇**身分**。

1. 選擇 **Create identity** (建立身分)。

1. 選取**身分類型**下的**網域**，然後輸入您要複寫並做為父系的 Easy DKIM 所設定之現有身分的網域名稱。

1. 展開**進階 DKIM 設定**，然後選取**確定性 Easy DKIM**。

1. 從**父區域**下拉式功能表中，選取父區域，其中具有與您為全域 （複本） 身分輸入之相同名稱的 Easy DKIM 簽署身分所在的父區域。（您的複本區域預設為您登入 SES 主控台的區域。)

1. 確保已啟用 **DKIM 簽章**。

1. （選用） 將一或多個**標籤**新增至您的網域身分。

1. 檢閱組態，然後選擇**建立身分**。

使用 AWS CLI：

若要根據使用 Easy DKIM 設定的父系身分建立複本身分，您需要指定父系的網域名稱、要建立複本身分的區域，以及父系的 DKIM 簽署區域，如此範例所示：

```
aws sesv2 create-email-identity --email-identity example.com --region us-west-2 --dkim-signing-attributes '{"DomainSigningAttributesOrigin": "AWS_SES_US_EAST_1"}'
```

在上述範例中：

1. 將 *example.com* 取代為複寫的父系網域身分。

1. 將 *us-west-2* 取代為要建立複本網域身分的區域。

1. 將 *AWS\$1SES\$1US\$1EAST\$11* 取代為父系的 DKIM 簽署區域，代表其將複寫至複本身分的 Easy DKIM 簽署組態。
**注意**  
`AWS_SES_` 字首表示已使用 Easy DKIM 為父系身分設定 DKIM，且 `US_EAST_1`是其建立 AWS 區域 所在的 。

### 驗證複本身分組態
<a name="verifying-replica-identity"></a>

建立複本身分之後，您可以驗證其已使用父身分的 DKIM 簽署組態正確設定。

**若要驗證複本身分：**

1. 在您 AWS 區域 建立複本身分的 中，開啟位於 https：//[https://console.aws.amazon.com/ses/](https://console.aws.amazon.com/ses/) 的 SES 主控台。

1. 在導覽窗格中，選擇**身分**，然後從身分資料表中選取您要驗證**的身分**。

1. 在**身分驗證**索引標籤下，**DKIM 組態**欄位會指出狀態，而**父區域**欄位會指出使用 DEED 進行身分 DKIM 簽署組態的區域。

使用 AWS CLI：

使用 `get-email-identity`命令指定複本的網域名稱和區域：

```
aws sesv2 get-email-identity --email-identity example.com --region us-west-2
```

回應會在 `SigningAttributesOrigin` 參數中包含父區域的值，表示複本身分已成功使用父身分的 DKIM 簽署組態設定：

```
{
  "DkimAttributes": {
    "SigningAttributesOrigin": "AWS_SES_US_EAST_1"
  }
}
```

### 使用 DEED 所需的許可
<a name="required-permissions"></a>

若要使用 DEED，您需要：

1. 在複本區域中建立電子郵件身分的標準許可。

1. 從父區域複寫 DKIM 簽署金鑰的許可。

#### DKIM 複寫的 IAM 政策範例
<a name="example-iam-policy"></a>

下列政策允許 DKIM 簽署金鑰從父身分複寫到指定的複本區域：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowDKIMReplication",
      "Effect": "Allow",
      "Action": "ses:ReplicateEmailIdentityDKIMSigningKey",
      "Resource": "arn:aws:ses:us-east-1:123456789124:identity/example.com",
      "Condition": {
        "ForAllValues:StringEquals": {
           "ses:ReplicaRegion": ["us-east-1", "us-east-1"]
        }
      }
    }
  ]
}
```

------

## 最佳實務
<a name="deed-best-practices"></a>

建議使用下列最佳實務：
+ **規劃您的父系和複本區域** – 考慮您選擇的父系區域，因為它將成為複本區域中所用 DKIM 組態的真實來源。
+ **使用一致的 IAM 政策** – 確保您的 IAM 政策允許跨所有預期區域的 DKIM 複寫。
+ **保持父身分為作用中** – 請記住，您的複本身分會繼承父身分的 DKIM 簽署組態，因為此相依性，您必須先刪除所有複本身分，才能刪除父身分。

## 疑難排解
<a name="troubleshooting"></a>

如果您遇到 DEED 問題，請考慮下列事項：
+ **驗證錯誤** – 確保您具有 DKIM 複寫的必要許可。
+ **複寫延遲** – 複寫需要一些時間才能完成，尤其是在建立新的複本身分時。
+ **DNS 問題** – 確認父身分的 DNS 記錄已正確設定並傳播。

# 在 Amazon SES 中提供您自己的 DKIM 身分驗證字符 (BYODKIM)
<a name="send-email-authentication-dkim-bring-your-own"></a>

做為使用 [Easy DKIM](send-email-authentication-dkim-easy.md) 的替代方案，您可以改用您自己的公開/私密金鑰對來設定 DKIM 驗證。此程序稱為*使用自有 DKIM* (*BYODKIM*)。

使用 BYODKIM，您可以使用單一 DNS 記錄來為您的網域設定 DKIM 驗證，而不是 Easy DKIM，後者需要您發佈三個個別的 DNS 記錄。此外，使用 BYODKIM 可讓您為網域輪換 DKIM 金鑰 (以您想要的頻率)。

**Topics**
+ [步驟 1：建立金鑰對](#send-email-authentication-dkim-bring-your-own-create-key-pair)
+ [步驟 2：將選擇器和公有金鑰新增到 DNS 供應商的網域組態](#send-email-authentication-dkim-bring-your-own-update-dns)
+ [步驟 3：將網域設定為使用 BYODKIM 並進行驗證](#send-email-authentication-dkim-bring-your-own-configure-identity)

**警告**  
如果您目前已啟用 Easy DKIM 並正在轉移到 BYODKIM，請注意，在設定 BYODKIM 且您的 DKIM 狀態處於待定狀態時，Amazon SES 不會使用 Easy DKIM 簽署您的電子郵件。從您呼叫啟用 BYODKIM(透過 API 或主控台)到 SES 可以確認您的 DNS 組態的那一刻，您的電子郵件可能會由 SES 傳送，而無需 DKIM 簽章。因此，建議使用中繼步驟從一種 DKIM 簽署方法遷移到另一種方法(例如，使用啟用了 Easy DKIM 的子網域，然後在 BYODKIM 驗證通過後將其刪除)，或者在應用程式停機期間執行此活動(如果有)。

## 步驟 1：建立金鑰對
<a name="send-email-authentication-dkim-bring-your-own-create-key-pair"></a>

若要運用「使用自有 DKIM」功能，您必須先建立 RSA 金鑰對。

您產生的公有金鑰必須採用 PKCS \$11 或 PKCS \$18 格式、必須至少使用 1024 位元 RSA 加密且最高可達 2048 位元，並使用 base64 [(PEM)](https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail) 編碼方式進行編碼。請參閱 [DKIM 簽署金鑰長度](send-email-authentication-dkim.md#send-email-authentication-dkim-1024-2048)，深入了解 DKIM 簽署金鑰長度以及如何變更金鑰長度。

**注意**  
只要產生的私有金鑰至少使用 1024 位元 RSA 加密 (最高可達 2048 位元)，並使用 base64 [(PEM)](https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail) 進行編碼，您可以使用第三方應用程式和工具來產生 RSA 金鑰對。

在下列程序中，使用內建於大部分 Linux、macOS 或 Unix 作業系統的 `openssl genrsa` 命令來建立金鑰對的範例程式碼，將自動使用 base64 [(PEM)](https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail) 編碼。

**從 Linux、macOS 或 Unix 命令列建立金鑰對**

1. 在命令列輸入下列命令來產生私有金鑰，其中將 *nnnn* 取代為至少為 1024 位元的長度，最多為 2048 位元：

   ```
   openssl genrsa -f4 -out private.key nnnn
   ```

1. 在命令列輸入下列命令來產生公有金鑰：

   ```
   openssl rsa -in private.key -outform PEM -pubout -out public.key
   ```

## 步驟 2：將選擇器和公有金鑰新增到 DNS 供應商的網域組態
<a name="send-email-authentication-dkim-bring-your-own-update-dns"></a>

現在您已建立金鑰對，您必須將公有金鑰新增至網域的 DNS 組態，做為 TXT 記錄。

**將公有金鑰新增至網域的 DNS 組態**

1. 登入您的 DNS 或託管提供者的管理主控台。

1. 將新文字記錄新增至網域的 DNS 組態。記錄應該使用下列格式：    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/ses/latest/dg/send-email-authentication-dkim-bring-your-own.html)

   在上述範例中，進行下列變更：
   + 以可識別金鑰的唯一名稱取代 *selector*。
**注意**  
少數 DNS 供應商不允許您在記錄名稱中包含底線 (\$1)。不過，DKIM 記錄名稱必須使用底線。如果您的 DNS 供應商不允許您在記錄名稱中輸入底線，請聯絡供應商的客戶支援團隊以尋求協助。
   + 以您的網域取代 *example.com*。
   + 使用您稍早建立的公開金鑰取代 *yourPublicKey*，並包含 `p=` 字首，如上方 *Value* (值) 欄位所示。
**注意**  
將公有金鑰發佈 (新增) 到 DNS 供應商時，格式必須如下：  
您必須刪除所產生公開金鑰的第一行和最後一行 (分別為 `-----BEGIN PUBLIC KEY-----` 和 `-----END PUBLIC KEY-----`)。此外，您必須移除所產生公開金鑰中的換行符號。產生的值是字元的字串，不帶空格或換行符號。
您必須包含 `p=` 字首，如上表中 *Value* (值) 欄位所示。

   不同供應商有不同的 DNS 記錄更新程序。下表包括幾個最常採用的 DNS 供應商的文件連結。這不是完整詳盡的清單，且不提供任何背書；同樣，若您的 DNS 供應商未列入清單，也不表示您無法搭配 Amazon SES 使用該網域。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/ses/latest/dg/send-email-authentication-dkim-bring-your-own.html)

## 步驟 3：將網域設定為使用 BYODKIM 並進行驗證
<a name="send-email-authentication-dkim-bring-your-own-configure-identity"></a>

您可以透過使用主控台或 AWS CLI為新網域 (即您目前未用來透過 Amazon SES 傳送電子郵件的網域) 和現有網域 (即您已設定要搭配 Amazon SES 使用的網域) 設定 BYODKIM。在使用本節中的 AWS CLI 程序之前，您必須先安裝和設定 AWS CLI。如需詳細資訊，請參閱 [AWS Command Line Interface 使用者指南](https://docs.aws.amazon.com/cli/latest/userguide/)。

### 選項 1：建立使用 BYODKIM 的新網域身分
<a name="send-email-authentication-dkim-bring-your-own-configure-identity-new-domain"></a>

本節包含建立使用 BYODKIM 的新網域身分的程序。新的網域身分是您先前未設定要使用 Amazon SES 來傳送電子郵件的網域。

如果您想要將現有的網域設定為使用 BYODKIM，請改為完成 [選項 2：設定現有的網域身分](#send-email-authentication-dkim-bring-your-own-configure-identity-existing-domain) 中的程序。

**若要從主控台使用 BYODKIM 建立身分**
+ 請遵循 [建立網域身分](creating-identities.md#verify-domain-procedure) 的程序，當您進入步驟 8 時，請按照 BYODKIM 的具體說明進行操作。

**從 使用 BYODKIM 建立身分 AWS CLI**

若要設定新網域，請使用 Amazon SES API 中的 `CreateEmailIdentity` 作業。

1. 在文字編輯器中，貼上以下程式碼：

   ```
   {
       "EmailIdentity":"example.com",
       "DkimSigningAttributes":{
           "DomainSigningPrivateKey":"privateKey",
           "DomainSigningSelector":"selector"
       }
   }
   ```

   在上述範例中，進行下列變更：
   + 以您要建立的網域取代 *example.com*。
   + 以您的私密金鑰取代 *privateKey*。
**注意**  
您必須刪除所產生私有金鑰的第一行和最後一行 (分別為 `-----BEGIN PRIVATE KEY-----` 和 `-----END PRIVATE KEY-----`)。此外，您必須移除所產生私有金鑰中的換行符號。產生的值是字元的字串，不帶空格或換行符號。
   + 以您在網域的 DNS 組態中建立 TXT 記錄時所指定的唯一選取器取代 *selector*。

   完成後，請將檔案儲存為 `create-identity.json`。

1. 在命令列中輸入以下命令：

   ```
   aws sesv2 create-email-identity --cli-input-json file://path/to/create-identity.json
   ```

   在上述命令中，將 *path/to/create-identity.json* 取代為您在上一個步驟中建立的檔案的完整路徑。

### 選項 2：設定現有的網域身分
<a name="send-email-authentication-dkim-bring-your-own-configure-identity-existing-domain"></a>

本節包含更新現有網域身分以使用 BYODKIM 的程序。現有的網域身分是您已設定要使用 Amazon SES 來傳送電子郵件的網域。

**若要從主控台使用 BYODKIM 更新網域身分**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/ses/](https://console.aws.amazon.com/ses/)：// 開啟 Amazon SES 主控台。

1. 在導覽窗格中的 **Configuration (組態)** 下，選擇 **Verified identities (已驗證身分)**。

1. 在身分清單中，選擇 **Identity type (身分類型)** 是 *Domain (網域)* 的身分。
**注意**  
如果您需要建立或驗證網域，請參閱 [建立網域身分](creating-identities.md#verify-domain-procedure)。

1. 在 **Authentication** (身分驗證) 索引標籤下方的 **DomainKeys Identified Mail (DKIM)** (網域金鑰識別郵件 (DKIM)) 窗格中，選擇 **Edit** (編輯)。

1. 在 **Advanced DKIM settings (進階 DKIM 設定)** 窗格中，選擇 **Identity type** (身分類型) 欄位中的 **Provide DKIM authentication token (BYODKIM)** (提供 DKIM 身分驗證字符 (BYODKIM)) 按鈕。

1. 針對**私有金鑰**，請貼上您稍早產生的私有金鑰。
**注意**  
您必須刪除所產生私有金鑰的第一行和最後一行 (分別為 `-----BEGIN PRIVATE KEY-----` 和 `-----END PRIVATE KEY-----`)。此外，您必須移除所產生私有金鑰中的換行符號。產生的值是字元的字串，不帶空格或換行符號。

1. 對於 **Selector name (選取器名稱)**，輸入您在網域 DNS 設定中指定的選擇器名稱。

1. 在 **DKIM signatures (DKIM 簽章)** 欄位中，選中 **Enabled (已啟用)** 方塊。

1. 選擇**儲存變更**。

**從 使用 BYODKIM 更新網域身分 AWS CLI**

若要設定現有的網域，請在 Amazon SES API 中使用 `PutEmailIdentityDkimSigningAttributes` 作業。

1. 在文字編輯器中，貼上以下程式碼：

   ```
   {
       "SigningAttributes":{
           "DomainSigningPrivateKey":"privateKey",
           "DomainSigningSelector":"selector"
       },
       "SigningAttributesOrigin":"EXTERNAL"
   }
   ```

   在上述範例中，進行下列變更：
   + 以您的私密金鑰取代 *privateKey*。
**注意**  
您必須刪除所產生私有金鑰的第一行和最後一行 (分別為 `-----BEGIN PRIVATE KEY-----` 和 `-----END PRIVATE KEY-----`)。此外，您必須移除所產生私有金鑰中的換行符號。產生的值是字元的字串，不帶空格或換行符號。
   + 以您在網域的 DNS 組態中建立 TXT 記錄時所指定的唯一選取器取代 *selector*。

   完成後，請將檔案儲存為 `update-identity.json`。

1. 在命令列中輸入以下命令：

   ```
   aws sesv2 put-email-identity-dkim-signing-attributes --email-identity example.com --cli-input-json file://path/to/update-identity.json
   ```

   在上述命令中，進行下列變更：
   + 以您在上一個步驟中建立的檔案的完整路徑取代 *path/to/create-identity.json*。
   + 以您要更新的網域取代 *example.com*。

### 驗證使用 BYODKIM 的網域的 DKIM 狀態
<a name="send-email-authentication-dkim-bring-your-own-configure-identity-check"></a>

**從主控台驗證網域的 DKIM 狀態**

將網域設定為使用 BYODKIM 之後，您可以使用 SES 主控台來驗證已正確設定 DKIM。

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/ses/](https://console.aws.amazon.com/ses/)：// 開啟 Amazon SES 主控台。

1. 在導覽窗格中的 **Configuration** (組態) 下，選擇 **Verified identities** (已驗證身分)。

1. 在身分清單中，選擇您要驗證 DKIM 狀態的身分。

1. 對 DNS 設定的變更最多可能需要 72 小時才會傳播。當 Amazon SES 在您網域的 DNS 設定中偵測到所有必需的 DKIM 記錄時，驗證程序即完成。若所有內容都已正確設定，在 **DomainKeys Identified Mail (DKIM)** (網域金鑰識別郵件 (DKIM)) 窗格中，您網域的 **DKIM configuration** (DKIM 設定) 欄位將顯示為 **Successful** (成功)，並且 **Summary** (摘要) 窗格中的 **Identity status** (身分狀態) 欄位將顯示為 **Verified** (已驗證)。

**使用 驗證網域的 DKIM 狀態 AWS CLI**

將網域設定為使用 BYODKIM 之後，您可以使用 GetEmailIdentity 操作來驗證已正確設定 DKIM。
+ 在命令列中輸入以下命令：

  ```
  aws sesv2 get-email-identity --email-identity example.com
  ```

  在上述命令中，將 *example.com* 取代為您的網域。

  此命令會傳回 JSON 物件，其中包含類似下列範例的區段。

  ```
  {
      ...
      "DkimAttributes": { 
          "SigningAttributesOrigin": "EXTERNAL",
          "SigningEnabled": true,
          "Status": "SUCCESS",
          "Tokens": [ ]
      },
      ...
  }
  ```

  如果下列各項成立，則已正確為網域設定 BYODKIM：
  + `SigningAttributesOrigin` 屬性的值為 `EXTERNAL`。
  + `SigningEnabled` 的值為 `true`。
  + `Status` 的值為 `SUCCESS`。

# 管理 Easy DKIM 和 BYODKIM
<a name="send-email-authentication-dkim-easy-managing"></a>

對於已透過 Easy DKIM 或 BYODKIM 驗證的身分，您可以使用基於 Web 的 Amazon SES 主控台或使用 Amazon SES API 來管理這些身分的 DKIM 設定。您可以使用其中任一種方法來取得身分的 DKIM 記錄，或是啟用或停用身分的 DKIM 簽署。

## 取得身分的 DKIM 記錄
<a name="send-email-authentication-dkim-easy-managing-obtain-records"></a>

您可以隨時使用 Amazon SES 主控台，取得網域或電子郵件地址的 DKIM 記錄。

**使用主控台取得身分的 DKIM 記錄**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/ses/](https://console.aws.amazon.com/ses/)：// 開啟 Amazon SES 主控台。

1. 在導覽窗格中的 **Configuration** (組態) 下，選擇 **Verified identities** (已驗證身分)。

1. 在身分清單中，選擇您希望取得哪種身分的\$1 DKIM 記錄。

1. 在身分詳細資訊頁面的 **Authentication **(身分驗證) 索引標籤上，展開 **View DNS records** (檢視 DNS 記錄)。

1. 複製顯示在本區段的三個 CNAME 記錄 (如果您使用 Easy DKIM)，或複製 TXT 記錄 (如果您使用 BYODKIM)。或者，您可以選擇 **Download .csv record set** (下載 .csv 記錄集)，將記錄複本儲存到您的電腦。

   下圖顯示展開的 **View DNS records** (檢視 DNS 記錄) 區段範例，其中顯示了與 Easy DKIM 相關聯的 CNAME 記錄。  
![\[\]](http://docs.aws.amazon.com/zh_tw/ses/latest/dg/images/dkim_existing_dns.png)

您也可以使用 Amazon SES API 取得身分的 DKIM 記錄。使用 AWS CLI是與 API 互動的常見方法。

**使用 取得身分的 DKIM 記錄 AWS CLI**

1. 在命令列中輸入以下命令：

   ```
   aws ses get-identity-dkim-attributes --identities "example.com"
   ```

   在上述範例中，將 *example.com* 取代為您想要取得其 DKIM 記錄的身分。您可以指定電子郵件地址或網域。

1. 此命令的輸出包含 `DkimTokens` 區段，如以下範例所示：

   ```
   {
       "DkimAttributes": {
           "example.com": {
               "DkimEnabled": true,
               "DkimVerificationStatus": "Success",
               "DkimTokens": [
                   "hirjd4exampled5477y22yd23ettobi",
                   "v3rnz522czcl46quexamplek3efo5o6x",
                   "y4examplexbhyhnsjcmtvzotfvqjmdqoj"
               ]
           }
       }
   }
   ```

   您可以使用字符來建立 CNAME 記錄，以新增到網域的 DNS 設定。若要建立 CNAME 記錄，請使用下列範本：

   ```
   token1._domainkey.example.com CNAME token1.dkim.amazonses.com
   token2._domainkey.example.com CNAME token2.dkim.amazonses.com
   token3._domainkey.example.com CNAME token3.dkim.amazonses.com
   ```

   將每個執行個體的 *token1* 取代為當您執行 `get-identity-dkim-attributes` 命令時收到清單中的第一個字符，將所有執行個體的 *token2* 取代為清單中的第二個字符，並將所有執行個體的 *token3* 取代為清單中的第三個字符。

   例如，將此範本套用到上述範例所示的字符時，會產生以下記錄：

   ```
   hirjd4exampled5477y22yd23ettobi._domainkey.example.com CNAME hirjd4exampled5477y22yd23ettobi.dkim.amazonses.com
   v3rnz522czcl46quexamplek3efo5o6x._domainkey.example.com CNAME v3rnz522czcl46quexamplek3efo5o6x.dkim.amazonses.com
   y4examplexbhyhnsjcmtvzotfvqjmdqoj._domainkey.example.com CNAME y4examplexbhyhnsjcmtvzotfvqjmdqoj.dkim.amazonses.com
   ```

**注意**  
並非所有 都 AWS 區域 使用預設 SES DKIM 網域，`dkim.amazonses.com`若要查看您的區域是否使用區域特定的 DKIM 網域，請檢查 中的 [DKIM 網域資料表](https://docs.aws.amazon.com/general/latest/gr/ses.html#ses_dkim_domains)*AWS 一般參考*。

## 停用身分的 Easy DKIM
<a name="send-email-authentication-dkim-easy-managing-disabling"></a>

您可以使用 Amazon SES 主控台，快速為身分停用 DKIM 驗證。

**停用身分的 DKIM**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/ses/](https://console.aws.amazon.com/ses/)：// 開啟 Amazon SES 主控台。

1. 在導覽窗格中的 **Configuration** (組態) 下，選擇 **Verified identities** (已驗證身分)。

1. 在身分清單中，選擇您希望停用哪種身分的 DKIM。

1. 在 **Authentication** (身分驗證) 索引標籤下方的 **DomainKeys Identified Mail (DKIM)** (網域金鑰識別郵件 (DKIM)) 容器中，選擇 **Edit** (編輯)。

1. 在 **Advanced DKIM settings** (進階 DKIM 設定) 中，清除 **DKIM signatures** (DKIM 簽章) 欄位中的 **Enabled** (已啟用) 方塊。

您也可以使用 Amazon SES API 為身分停用 DKIM。使用 AWS CLI是與 API 互動的常見方法。

**使用 停用身分的 DKIM AWS CLI**
+ 在命令列中輸入以下命令：

  ```
  aws ses set-identity-dkim-enabled --identity example.com --no-dkim-enabled
  ```

  在上述範例中，將 *example.com* 取代為您想要停用 DKIM 的身分。您可以指定電子郵件地址或網域。

## 啟用身分的 Easy DKIM
<a name="send-email-authentication-dkim-easy-managing-enabling"></a>

如果您之前已為某個身分停用 DKIM，您可以使用 Amazon SES 主控台再次啟用。

**啟用身分的 DKIM**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/ses/](https://console.aws.amazon.com/ses/)：// 開啟 Amazon SES 主控台。

1. 在導覽窗格中的 **Configuration** (組態) 下，選擇 **Verified identities** (已驗證身分)。

1. 在身分清單中，選擇您希望啟用哪種身分的 DKIM。

1. 在 **Authentication (身分驗證)** 索引標籤下方的 **網域金鑰識別郵件 (DKIM)** 容器中，選擇 **Edit (編輯)**。

1. 在 **Advanced DKIM settings (進階 DKIM 設定)** 中，選中 **DKIM signatures (DKIM 簽章)** 欄位中的 **Enabled (已啟用)** 方塊。

您也可以使用 Amazon SES API 為身分啟用 DKIM。使用 AWS CLI是與 API 互動的常見方法。

**使用 為身分啟用 DKIM AWS CLI**
+ 在命令列中輸入以下命令：

  ```
  aws ses set-identity-dkim-enabled --identity example.com --dkim-enabled
  ```

  在上述範例中，將 *example.com* 取代為您想要啟用 DKIM 的身分。您可以指定電子郵件地址或網域。

## 覆寫電子郵件地址身分上的繼承 DKIM 簽署
<a name="send-email-authentication-dkim-easy-setup-email"></a>

本節說明如何在已使用 Amazon SES 驗證的特定電子郵件地址身分上覆寫 (停用或啟用) 從父系網域繼承的 DKIM 簽署屬性。您只能針對屬於您已擁有之網域的電子郵件地址身分執行此動作，因為 DNS 設定是在網域層級設定的。

**重要**  
您無法在以下網域為電子郵件地址身分停用/啟用 DKIM 簽署…  
非您擁有的網域。例如，您無法為 *gmail.com* 或 *hotmail.com* 地址切換 DKIM 簽署設定，
您所擁有的網域，但尚未在 Amazon SES 中完成驗證，
您所擁有的網域，但尚未在網域上啟用 DKIM 簽署。

本節包含下列主題：
+ [了解繼承的 DKIM 簽署屬性](#dkim-easy-setup-email-key-points-mng)
+ [覆寫電子郵件地址身分上的 DKIM 簽署 (主控台)](#override-dkim-email-console-mng)
+ [覆寫電子郵件地址身分上的 DKIM 簽署 (AWS CLI)](#override-dkim-email-cli-mng)

### 了解繼承的 DKIM 簽署屬性
<a name="dkim-easy-setup-email-key-points-mng"></a>

首先必須了解，如果使用 DKIM 設定父系網域，電子郵件地址身分會從父系網域繼承其 DKIM 簽署屬性，不論是否使用 Easy DKIM 或 BYODKIM。因此，停用或啟用電子郵件地址身分上的 DKIM 簽署，實際上是根據以下重要事實覆寫網域的 DKIM 簽署屬性：
+ 如果您已設定電子郵件地址所屬網域的 Easy DKIM，即不需要一併為電子郵件地址身分啟用 DKIM 簽署。
  + 當您為某個網域設定 DKIM 時，Amazon SES 會自動透過從父系網域繼承的 DKIM 屬性驗證來自該網域每個地址的每封電子郵件。
+ 特定電子郵件地址身分的 DKIM 設定會*自動覆寫該地址所屬父系網域或子網域 (如適用) 的設定*。

由於電子郵件地址身分的 DKIM 簽署屬性是繼承自父系網域，因此如果您打算覆寫這些屬性，您必須牢記覆寫的階層規則，如下表所述。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/ses/latest/dg/send-email-authentication-dkim-easy-managing.html)

通常不建議停用 DKIM 簽署，因為有可能會損害寄件者評價，而且會增加將您傳送的郵件送往垃圾郵件資料夾或網域遭到假冒的風險。

不過，可以因應任何特定使用案例或異常業務決策，而覆寫電子郵件地址身分上的網域繼承 DKIM 簽署屬性，以永久或暫時停用 DKIM 簽署，或稍後再重新啟用。

### 覆寫電子郵件地址身分上的 DKIM 簽署 (主控台)
<a name="override-dkim-email-console-mng"></a>

下列 SES 主控台程序說明如何在已使用 Amazon SES 驗證的特定電子郵件地址身分上覆寫 (停用或啟用) 從父系網域繼承的 DKIM 簽署屬性。

**使用主控台停用/啟用電子郵件地址身分上的 DKIM 簽署**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/ses/](https://console.aws.amazon.com/ses/)：// 開啟 Amazon SES 主控台。

1. 在導覽窗格中的 **Configuration** (組態) 下，選擇 **Verified identities** (已驗證身分)。

1. 在身分清單中，選擇 **Identity type** (身分類型) 為*電子郵件地址*且屬於其中一個已驗證網域的身分。

1. 在 **Authentication** (身分驗證) 索引標籤下方的 **DomainKeys Identified Mail (DKIM)** (網域金鑰識別郵件 (DKIM)) 容器中，選擇 **Edit** (編輯)。
**注意**  
唯有在所選的電子郵件地址身分屬於已由 SES 驗證的網域的情況下，**Authentication** (身分驗證) 索引標籤才會顯示。如果您尚未驗證網域，請參閱 [建立網域身分](creating-identities.md#verify-domain-procedure)。

1. 在 **Advanced DKIM settings** (進階 DKIM 設定) 下的 **DKIM signatures** (DKIM 簽章) 欄位中，清除 **Enabled** (已啟用) 核取方塊來停用 DKIM 簽章，或勾選此核取方塊來重新啟用 DKIM 簽章 (若簽章先前已被覆寫)。

1. 選擇**儲存變更**。

### 覆寫電子郵件地址身分上的 DKIM 簽署 (AWS CLI)
<a name="override-dkim-email-cli-mng"></a>

下列範例使用 AWS CLI 搭配 SES API 命令和參數，這些命令會覆寫 （停用或啟用） 已透過 SES 驗證之特定電子郵件地址身分上父系網域繼承的 DKIM 簽署屬性。

**使用 停用/啟用電子郵件地址身分的 DKIM 簽署 AWS CLI**
+  假設您擁有 *example.com* 網域，而且您想要為該網域的其中一個電子郵件地址停用 DKIM 簽署，請在命令列中輸入下列命令：

  ```
  aws sesv2 put-email-identity-dkim-attributes --email-identity marketing@example.com --no-signing-enabled
  ```

  1. 以您想要停用 DKIM 簽署的電子郵件地址身分取代 *marketing@example.com*。

  1. `--no-signing-enabled` 將停用 DKIM 簽署。若要重新啟用 DKIM 簽署，請使用 `--signing-enabled`。

# 在 Amazon SES 中手動執行 DKIM 簽署
<a name="send-email-authentication-dkim-manual"></a>

做為使用 Easy DKIM 的替代方案，您可以改為手動將 DKIM 簽章新增到您的訊息，然後使用 Amazon SES 傳送那些訊息。若您選擇手動簽署您的訊息，您必須先建立 DKIM 簽章。在您建立訊息及 DKIM 簽章後，您可以使用 [SendRawEmail](https://docs.aws.amazon.com/ses/latest/APIReference/API_SendRawEmail.html) API 來傳送它。

若您決定手動簽署您的電子郵件，請考慮下列要素：
+ 您使用 Amazon SES *傳送的每則訊息都包含 DKIM 標頭，該標頭會參考 amazonses.com* 的簽署網域 (即包含以下字串：`d=amazonses.com`)。因此，若您手動簽署訊息，則此訊息應包含*兩個* DKIM 標頭：一個用於您的網域，另一個則是 Amazon SES 自動為 *amazonses.com* 建立的標頭。
+ Amazon SES 不會驗證您手動新增到訊息的 DKIM 簽章。若訊息中的 DKIM 簽章發生錯誤，便可能會遭到電子郵件提供者拒絕。
+ 當您簽署訊息時，建議您使用至少 1024 位元的位元長度。
+ 請不要簽署以下欄位：訊息 ID (Message-ID)、日期 (Date)、傳回路徑 (Return-Path) 和退信至 (Bounces-To)。
**注意**  
若您使用電子郵件用戶端來透過 Amazon SES SMTP 界面傳送電子郵件，您的用戶端可能會自動執行訊息的 DKIM 簽署。有些用戶端可能會簽署一部分的欄位。請參閱您電子郵件用戶端的文件，了解根據預設會簽署哪些欄位的資訊。

# 在 Amazon SES 中透過 SPF 驗證電子郵件
<a name="send-email-authentication-spf"></a>

*寄件人政策架構 *(SPF) 是一種電子郵件驗證標準，專為防止電子郵件詐騙而設計。網域擁有者可使用 SPF 來告知電子郵件提供者，允許哪些伺服器從其網域傳送電子郵件。SPF 定義在 [RFC 7208](https://tools.ietf.org/html/rfc7208) 中。

您透過 Amazon SES 傳送的訊息會自動使用 `amazonses.com` 子網域做為預設「寄件人」網域。SPF 身分驗證功能成功驗證這些訊息，因為預設的「寄件人」網域符合傳送電子郵件伺服器的應用程式，在此情況下指的是 SES。因此，在 SES 中，會隱含地為您設定 SPF。

不過，如果您不想使用 SES 預設「寄件人」網域，且寧願使用您擁有之網域的子網域，則這在 SES 中稱為使用*自訂*「寄件人」網域。若要這麼做，它會要求您為自訂「寄件人」網域發佈您自己的 SPF 記錄。此外，SES 也會要求您設定 MX 記錄，您的自訂「寄件人」網域才能接收電子郵件提供者傳送給您的退信和投訴通知。

**了解如何設定 SPF 身分驗證**  
提供使用 SPF 設定網域以及如何在 中發佈 MX 和 SPF （類型 TXT) 記錄的說明[使用自訂「寄件人」網域](mail-from.md)。

# 使用自訂「寄件人」網域
<a name="mail-from"></a>

當電子郵件傳送時，有兩個地址指出其來源：顯示給訊息收件人的寄件人地址：以及指出訊息來源位置的 MAIL FROM 地址。「寄件人」地址有時稱為*信封寄件者*、*信封寄自*、*退信地址*或*傳回路徑*地址。郵件伺服器會使用 MAIL FROM 地址來傳回退信訊息和其他錯誤通知。通常只在收件人檢視訊息的來源碼時，才能檢視 MAIL FROM 地址。

Amazon SES 會將您所傳送訊息的「寄件人」網域設定為預設值，除非您指定自己的 (自訂) 網域。本節討論設定自訂 MAIL FROM 網域的好處，以及包含設定程序。

## 為何使用自訂「寄件人」網域？
<a name="mail-from-overview"></a>

您透過 Amazon SES 傳送的訊息會自動使用 `amazonses.com` 子網域做為預設「寄件人」網域。寄件者政策架構 (SPF) 身分驗證功能成功驗證這些訊息，因為預設的「寄件人」網域符合傳送電子郵件伺服器的應用程式，在此情況下指的是 SES。

如果您不想使用 SES 預設郵件 FLOR 域，而想使用您擁有的網域的子網域，必須在 SES 中使用*自訂*「寄件人」網域。若要這麼做，它會要求您為自訂「寄件人」網域發佈您自己的 SPF 記錄。此外，SES 也會要求您設定 MX 記錄，您的網域才能接收電子郵件提供者傳送給您的退信和投訴通知。

透過使用自訂「寄件人」網域，您可以彈性使用 SPF、DKIM 或兩者來達成[網域型訊息驗證、回報與遵循 (DMARC)](send-email-authentication-dmarc.md) 驗證。DMARC 可讓寄件者的網域指出，從該網域傳送的電子郵件受到一或多個身分驗證系統的保護。有兩種方式可完成 DMARC 驗證：[透過 SPF 來遵循 DMARC](send-email-authentication-dmarc.md#send-email-authentication-dmarc-spf) 和 [透過 DKIM 來遵循 DMARC](send-email-authentication-dmarc.md#send-email-authentication-dmarc-dkim)。

## 選擇自訂「寄件人」網域
<a name="mail-from-requirements"></a>

在下文中，*「寄件人」網域*一詞一律是指您擁有之網域的子網域 - 您用於自訂寄件人網域的此子網域不得用於任何其他項目，且必須符合下列要求：
+ MAIL FROM 網域必須是已驗證身分之父系網域的子網域 （電子郵件地址或網域）。
+ MAIL FROM 網域不應是您亦用於傳送電子郵件的子網域。
+ MAIL FROM 網域不應是您用來接收電子郵件的子網域。

## 使用 SPF 與自訂「寄件人」網域
<a name="send-email-authentication-spf-cmfd"></a>

*寄件人政策架構 *(SPF) 是一種電子郵件驗證標準，專為防止電子郵件詐騙而設計。您可以使用 SPF 設定自訂「寄件人」網域，以告訴電子郵件提供商允許哪些伺服器從您的自訂「寄件人」網域寄出電子郵件。SPF 定義在 [RFC 7208](https://tools.ietf.org/html/rfc7208) 中。

若要設定 SPF 記錄，需將 TXT 記錄發佈到自訂「寄件人」網域的 DNS 組態。此記錄包含您授權使用您的自訂「寄件人」網域傳送電子郵件的伺服器清單。當電子郵件提供者從您的自訂「寄件人」網域接收訊息時，它會檢查網域的 DNS 記錄，以確保電子郵件是從授權的伺服器傳送而來的。

如果您想要使用此 SPF 記錄來遵循 DMARC，寄件人地址中的網域必須與「寄件人」網域相符。請參閱 [透過 SPF 來遵循 DMARC](send-email-authentication-dmarc.md#send-email-authentication-dmarc-spf)。

下一節 [設定自訂「寄件人」網域](#mail-from-set) 說明如何為您的自訂「寄件人」網域設定 SPF。

## 設定自訂「寄件人」網域
<a name="mail-from-set"></a>

設定自訂 MAIL FROM 網域的程序需要您將記錄新增到網域的 DNS 組態。SES 要求您發佈 MX 記錄，讓您的網域可以接收電子郵件提供者傳送給您的退信和投訴通知。您也必須發佈 SPF (TXT 類型) 記錄，以證明 Amazon SES 已獲授權可從您的網域傳送電子郵件。

您可以為整個網域或子網域以及個別電子郵件地址設定自訂「寄件人」網域。下列程序展示如何使用 Amazon SES 主控台來設定自訂「寄件人」網域。您也可以使用 [SetIdentityMailFromDomain](https://docs.aws.amazon.com/ses/latest/APIReference/API_SetIdentityMailFromDomain.html) API 操作，來設定自訂 MAIL FROM 網域。

### 為已驗證網域設定自訂「寄件人」網域
<a name="mail-from-setup-procedure-domain"></a>

這些程序說明如何為整個網域或子網域設定自訂「寄件人」網域，以便從該網域上的地址傳送的所有訊息都會使用此自訂「寄件人」網域。

**設定已驗證網域以使用指定的自訂「寄件人」網域**

1. 開啟 Amazon SES 主控台，網址為 [https://console.aws.amazon.com/ses/](https://console.aws.amazon.com/ses/)。

1. 在左側導覽面板的**組態**下，選擇**身分**。

1. 在身分清單中，選擇您要設定的身分，其中 **Identity type** (身分類型) 是 **Domain** (網域)，**Status** (狀態) 是 *Verified* (已驗證)。

   1. 如果 **Status** (狀態) 是 *Unverified* (未驗證)，請完成[透過 DNS 提供者驗證 DKIM 網域身分](creating-identities.md#just-verify-domain-proc)的程序，以驗證電子郵件地址的網域。

1. 在**自訂寄件人網域**窗格的畫面底部，選擇**編輯** 。

1. 在 **General details** (一般詳細資訊) 窗格中，執行下列動作：

   1. 選取 **Use a custom MAIL FROM domain** (使用自訂「寄件人」網域) 核取方塊。

   1. 針對 **MAIL FROM domain (「寄件人」網域)**，輸入您要用作「寄件人」網域的子網域。

   1. 針對 **Behavior on MX failure** (MX 故障時的行為)，選擇以下其中一個選項：
      + **Use default MAIL FROM domain** (使用預設「寄件人」網域) - 若自訂「寄件人」網域的 MX 記錄未正確設定，Amazon SES 將使用 `amazonses.com` 子網域。子網域會根據您使用 Amazon SES AWS 區域 的 而有所不同。
      + **拒絕訊息** - 如果自訂「寄件人」網域的 MX 記錄未正確設定，Amazon SES 將傳回 `MailFromDomainNotVerified` 錯誤。嘗試自此網域送出的電子郵件被自動拒收。

   1. 選擇 **Save changes** (儲存變更) - 您將返回到上一個畫面。

1. 發佈 MX 和 SPF (TXT 類型) 記錄到自訂「寄件人」網域的 DNS 伺服器：

   在 **Custom MAIL FROM domain** (自訂的「寄件人」網域) 窗格中，**Publish DNS records** (發佈 DNS 記錄) 表現在會顯示您必須發佈 (新增) 到網域 DNS 設定中的 MX 和 SPF (TXT 類型) 記錄。這些記錄使用下表所示的格式。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/ses/latest/dg/mail-from.html)

   在上述記錄中,
   + *subdomain*.*domain*.*com* (子網域.網域.com) 將填入您的「寄件人」子網域
   + *區域*會填入 AWS 區域 您要驗證「寄件人」網域的 名稱 （例如 `us-west-2`、 `us-east-1`或 `eu-west-1`等）。
   + 與 MX 值一併列出的數字 *10* 是郵件伺服器的首選順序，需要輸入至 DNS 供應商的 GUI 所指定的個別值欄位。
   + SPF 的 TXT 記錄值通常必須包含引號，但某些 DNS 供應商不需要。

   從 **Publish DNS records** (發佈 DNS 記錄) 表，選擇每個值旁邊的複製圖示來複製 MX 和 SPF (TXT 類型) 記錄，然後將它們貼到 DNS 供應商的 GUI 中的相應欄位。或者，您可以選擇 **Download .csv record set** (下載 .csv 記錄集)，將記錄複本儲存到您的電腦。
**重要**  
發佈 MX 和 SPF （類型 TXT) 記錄的特定程序取決於您的 DNS 或託管供應商。如需將這些記錄新增至網域 DNS 組態的相關資訊，請參閱供應商的文件或聯絡供應商。
若要透過 Amazon SES 成功設定自訂「寄件人」網域，您必須發佈一個 MX 記錄到「寄件人」網域的 DNS 伺服器。如果「寄件人」網域包含多個 MX 記錄，Amazon SES 的自訂「寄件人」設定將會失敗。

   如果 Route 53 為您的「寄件人」網域提供 DNS 服務，且您在用於 Route 53 的相同帳戶 AWS 管理主控台 下登入 ，則選擇**使用 Route 53 發佈記錄**。DNS 記錄會自動套用到您網域的 DNS 組態。

   如果您使用不同的 DNS 供應商，則必須手動將 DNS 記錄發佈至「寄件人」網域的 DNS 伺服器。將 DNS 記錄新增到您網域之 DNS 伺服器的程序，會根據您的 Web 託管服務或 DNS 供應商而有所不同。

   為您的網域發佈 DNS 記錄的程序，取決於您使用的 DNS 供應商。下表包括幾個最常採用的 DNS 供應商的文件連結。這不是完整詳盡的清單，且不提供任何背書；同樣，若您的 DNS 供應商未列入清單，也不表示不支援「寄件人」網域設定。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/ses/latest/dg/mail-from.html)

   當 Amazon SES 偵測到記錄就位時，您會收到一封電子郵件，通知您已成功設定自訂「寄件人」網域。視您的 DNS 供應商而定，在 Amazon SES 偵測到 MX 記錄之前，延遲可能會長達 72 小時。

### 為已驗證電子郵件地址設定自訂「寄件人」網域
<a name="mail-from-setup-procedure-email-address"></a>

您也可以為特定電子郵件地址設定自訂「寄件人」網域。若要為電子郵件地址設定自訂「寄件人」網域，您必須能夠修改與電子郵件地址相關聯之網域的 DNS 記錄。

**注意**  
您無法為非您擁有之網域上的地址設定自訂「寄件人」網域 (例如，您無法為 `gmail.com` 網域上的地址建立自訂「寄件人」網域，因為您無法將必要的 DNS 記錄新增至該網域)。

**若要設定已驗證電子郵件地址來使用指定的「寄件人」網域**

1. 開啟 Amazon SES 主控台，網址為 [https://console.aws.amazon.com/ses/](https://console.aws.amazon.com/ses/)。

1. 在左側導覽面板的**組態**下，選擇**身分**。

1. 在身分清單中，選擇您要設定的身分，其中 **Identity type** (身分類型) 是 **Email address** (電子郵件地址)，**Status** (狀態) 是 *Verified* (已驗證)。

   1. 如果 **Status** (狀態) 是 *Unverified* (未驗證)，請完成[驗證電子郵件地址身分](creating-identities.md#just-verify-email-proc)的程序，以驗證電子郵件地址的網域。

1. 在 **MAIL FROM Domain** (「寄件人」網域) 索引標籤下，選擇 **Custom MAIL FROM domain** (自訂「寄件人」網域) 窗格中的 **Edit** (編輯)。

1. 在 **General details** (一般詳細資訊) 窗格中，執行下列動作：

   1. 選取 **Use a custom MAIL FROM domain** (使用自訂「寄件人」網域) 核取方塊。

   1. 針對 **MAIL FROM domain (「寄件人」網域)**，輸入您要用作「寄件人」網域的子網域。

   1. 針對 **Behavior on MX failure** (MX 故障時的行為)，選擇以下其中一個選項：
      + **Use default MAIL FROM domain** (使用預設「寄件人」網域) - 若自訂「寄件人」網域的 MX 記錄未正確設定，Amazon SES 將使用 `amazonses.com` 子網域。子網域會根據您使用 Amazon SES AWS 區域 的 而有所不同。
      + **拒絕訊息** - 如果自訂「寄件人」網域的 MX 記錄未正確設定，Amazon SES 將傳回 `MailFromDomainNotVerified` 錯誤。嘗試自此電子郵件地址送出的電子郵件被自動拒收。

   1. 選擇 **Save changes** (儲存變更) - 您將返回到上一個畫面。

1. 發佈 MX 和 SPF (TXT 類型) 記錄到自訂「寄件人」網域的 DNS 伺服器：

   在 **Custom MAIL FROM domain** (自訂的「寄件人」網域) 窗格中，**Publish DNS records** (發佈 DNS 記錄) 表現在會顯示您必須發佈 (新增) 到網域 DNS 設定中的 MX 和 SPF (TXT 類型) 記錄。這些記錄使用下表所示的格式。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/ses/latest/dg/mail-from.html)

   在上述記錄中,
   + *subdomain*.*domain*.*com* (子網域.網域.com) 將填入您的「寄件人」子網域
   + *區域*會填入 AWS 區域 您要驗證「寄件人」網域的 名稱 （例如 `us-west-2`、 `us-east-1`或 `eu-west-1`等）。
   + 與 MX 值一併列出的數字 *10* 是郵件伺服器的首選順序，需要輸入至 DNS 供應商的 GUI 所指定的個別值欄位。
   + 請注意，SPF 的 TXT 記錄值必須包含引號

   從 **Publish DNS records** (發佈 DNS 記錄) 表，選擇每個值旁邊的複製圖示來複製 MX 和 SPF (TXT 類型) 記錄，然後將它們貼到 DNS 供應商的 GUI 中的相應欄位。或者，您可以選擇 **Download .csv record set** (下載 .csv 記錄集)，將記錄複本儲存到您的電腦。
**重要**  
若要透過 Amazon SES 成功設定自訂「寄件人」網域，您必須發佈一個 MX 記錄到「寄件人」網域的 DNS 伺服器。如果「寄件人」網域包含多個 MX 記錄，Amazon SES 的自訂「寄件人」設定將會失敗。

   如果 Route 53 為您的「寄件人」網域提供 DNS 服務，且您在用於 Route 53 的相同帳戶 AWS 管理主控台 下登入 ，則選擇**使用 Route 53 發佈記錄**。DNS 記錄會自動套用到您網域的 DNS 組態。

   如果您使用不同的 DNS 供應商，則必須手動將 DNS 記錄發佈至「寄件人」網域的 DNS 伺服器。將 DNS 記錄新增到您網域之 DNS 伺服器的程序，會根據您的 Web 託管服務或 DNS 供應商而有所不同。

   為您的網域發佈 DNS 記錄的程序，取決於您使用的 DNS 供應商。下表包括幾個最常採用的 DNS 供應商的文件連結。這不是完整詳盡的清單，且不提供任何背書；同樣，若您的 DNS 供應商未列入清單，也不表示不支援「寄件人」網域設定。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/ses/latest/dg/mail-from.html)

   當 Amazon SES 偵測到記錄就位時，您會收到一封電子郵件，通知您已成功設定自訂「寄件人」網域。視您的 DNS 供應商而定，在 Amazon SES 偵測到 MX 記錄之前，延遲可能會長達 72 小時。

## 透過 Amazon SES 設定的自訂「寄件人」網域設定狀態
<a name="mail-from-states"></a>

在您設定身分來使用自訂「寄件人」網域後，Amazon SES 將嘗試偵測 DNS 設定中所需的 MX 記錄，此時設定的狀態為「待定」。接下來，狀態會根據 Amazon SES 是否偵測到 MX 記錄而改變。下表說明電子郵件傳送行為以及與各個狀態相關的 Amazon SES 動作。每次狀態變更時，Amazon SES 都會傳送通知至與您的 相關聯的電子郵件地址 AWS 帳戶。


****  

| State | 電子郵件傳送行為 | Amazon SES 動作 | 
| --- | --- | --- | 
|  待定  |  使用自訂「寄件人」後援設定  |  Amazon SES 將連續 72 小時嘗試偵測所需的 MX 記錄。如果失敗，狀態將變更為「失敗」。  | 
|  成功  |  使用自訂的「寄件人」網域  |  Amazon SES 持續檢查所需的 MX 記錄是否就位。  | 
|  TemporaryFailure  |  使用自訂「寄件人」後援設定  |  Amazon SES 將連續 72 小時嘗試偵測所需的 MX 記錄。如果失敗，狀態將變更為「失敗」；如果成功，狀態將變更為「成功」。  | 
|  失敗  |  使用自訂「寄件人」後援設定  |  Amazon SES 將不再繼續嘗試偵測所需的 MX 記錄。若要使用自訂 MAIL FROM 網域，須在 [設定自訂「寄件人」網域](#mail-from-set) 中重新啟動設定程序。  | 

# 遵守 Amazon SES 中的 DMARC 身份驗證協議
<a name="send-email-authentication-dmarc"></a>

以網域為基礎的訊息身分驗證、報告和一致性 (DMARC) 是一種電子郵件身分驗證通訊協定，使用寄件者政策架構 (SPF) 和 DomainKeys 識別郵件 (DKIM) 來偵測電子郵件詐騙和網路釣魚。為了符合 DMARC，訊息必須透過 SPF 或 DKIM 進行驗證，但理想情況下，當兩者都與 DMARC 搭配使用時，您將確保電子郵件傳送盡可能獲得最高層級的保護。

讓我們簡單地檢閱每個 執行哪些操作，以及 DMARC 如何將它們串連在一起：
+  **SPF** – 識別允許哪些郵件伺服器透過 DNS TXT 使用的 DNS TXT 記錄，代表您自訂的「寄件人」網域傳送郵件。收件人郵件系統參考 SPF TXT 記錄，以判斷來自自訂網域的訊息是否來自授權的訊息伺服器。基本上，SPF 旨在協助防止詐騙，但有一些詐騙技巧在實務上容易受到 SPF 影響，因此您還需要使用 DKIM 和 DMARC。
+  **DKIM** – 將數位簽章新增至電子郵件標頭中的傳出訊息。接收電子郵件系統可以使用此數位簽章來協助驗證傳入電子郵件是否由網域擁有的金鑰簽署。不過，當接收電子郵件系統轉送訊息時，訊息的信封會以使 SPF 身分驗證失效的方式變更。由於數位簽章會保留電子郵件訊息，因為它是電子郵件標頭的一部分，因此即使訊息已在郵件伺服器之間轉送 （只要訊息內容尚未修改），DKIM 仍會運作。
+  **DMARC** – 確保網域與至少一個 SPF 和 DKIM 一致。單獨使用 SPF 和 DKIM 不會確保寄件者地址已驗證 （這是收件人在其電子郵件用戶端中看到的電子郵件地址）。SPF 只會檢查「寄件人」地址中指定的網域 （收件人看不到）。DKIM 只會檢查 DKIM 簽章中指定的網域 （收件者也不會看到）。DMARC 透過要求 SPF 或 DKIM 上的網域對齊正確來解決這兩個問題：
  + 若要讓 SPF 傳遞 DMARC 對齊，寄件人地址中的網域必須與「寄件人」地址中的網域相符 （也稱為「傳回路徑」和「信封」地址）。這在轉送的郵件中很少可行，因為它會被剔除，或透過第三方大量電子郵件供應商傳送電子郵件時，因為退信路徑 (MAIL FROM) 用於供應商 (SES) 使用他們擁有的地址追蹤的退信和投訴。
  + 若要讓 DKIM 傳遞 DMARC 對齊，DKIM 簽章中指定的網域必須與寄件人地址中的網域相符。如果您使用代您傳送郵件的第三方寄件者或服務，這可以透過確保第三方寄件者已正確設定 DKIM 簽署，且您已在網域中新增適當的 DNS 記錄來完成。然後，接收郵件伺服器將能夠驗證第三方傳送給他們的電子郵件，就好像是由獲授權使用網域內地址的人員所傳送的電子郵件一樣。

**全部與 DMARC 整合**  
我們上述討論的 DMARC 對齊檢查顯示 SPF、DKIM 和 DMARC 如何一起運作，以提高對網域的信任，並將您的電子郵件交付至收件匣。DMARC 透過確保收件人看到的寄件者地址通過 SPF 或 DKIM 驗證來完成此操作：
+ 如果其中一個或兩個所描述的 SPF 或 DKIM 檢查通過，則訊息會傳遞 DMARC。
+ 如果所述的 SPF 或 DKIM 檢查都失敗，則訊息會失敗 DMARC。

因此，對於 DMARC 而言，SPF 和 DKIM 都是必要的，才能有最佳機會為您的已傳送電子郵件進行身分驗證，而透過利用這三種方法，您將協助確保您擁有完全受保護的傳送網域。

DMARC 也可讓您指示電子郵件伺服器在透過您設定的政策進行 DMARC 身分驗證失敗時，如何處理電子郵件。這將在下一節中說明，[對您的網域設定 DMARC 政策](#send-email-authentication-dmarc-dns)其中包含如何設定 SES 網域的相關資訊，以便您傳送的電子郵件同時透過 SPF 和 DKIM 遵守 DMARC 身分驗證通訊協定。

## 對您的網域設定 DMARC 政策
<a name="send-email-authentication-dmarc-dns"></a>

若要設定 DMARC，您必須修改您網域的 DNS 設定。您網域的 DNS 設定應該包含指定網域 DMARC 設定的 TXT 記錄。將 TXT 記錄新增到您 DNS 組態的程序取決於您使用的 DNS 或託管提供者。如果您使用 Route 53，請參閱 *Amazon Route 53 開發人員指南*中的[使用記錄](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/rrsets-working-with.html)。如果使用其他提供者，請參閱您提供者的 DNS 組態文件。

您建立的 TXT 記錄名稱應該是 `_dmarc.example.com`，其中 `example.com` 為您的網域。TXT 記錄的值包含套用到您網域的 DMARC 政策。以下為包含 DMARC 政策的 TXT 記錄範例：


| 名稱 | 類型 | Value | 
| --- | --- | --- | 
| \$1dmarc.example.com | TXT | "v=DMARC1;p=quarantine;rua=mailto:my\$1dmarc\$1report@example.com" | 

在上述 DMARC 政策範例中，此政策會指示電子郵件供應商執行下列動作：
+ 對於身分驗證失敗的任何訊息，請將其傳送到政策參數 指定的垃圾郵件資料夾`p=quarantine`。其他選項包括使用 不採取任何動作`p=none`，或使用 直接拒絕訊息`p=reject`。
  + 下一節討論如何使用和何時使用這三個政策設定 - *在錯誤的時間使用錯誤的政策設定可能會導致您的電子郵件無法交付，*請參閱 [實作 DMARC 的最佳實務](#send-email-authentication-dmarc-implement)。
+ 依報告參數 (*rua* 代表報告彙總報告的 URI) 所指定，傳送摘要中身分驗證失敗的所有電子郵件報告 `rua=mailto:my_dmarc_report@example.com`（亦即彙總特定期間內資料的報告，而不是傳送每個事件的個別報告）。電子郵件提供者通常每天會傳送一次這些彙總報告，但這些政策因提供者而異。

若要進一步了解為您的網域設定 DMARC，請參閱 DMARC 網站的 [概觀](https://dmarc.org/overview/)。

如需 DMARC 系統的完整規格，請參閱[網際網路工程任務小組 (IETF) DMARC 草稿](https://datatracker.ietf.org/doc/draft-ietf-dmarc-dmarcbis/)。

## 實作 DMARC 的最佳實務
<a name="send-email-authentication-dmarc-implement"></a>

最好以漸進和分階段的方式實作 DMARC 政策強制執行，以免中斷郵件流程的其餘部分。建立並實作遵循這些步驟的推展計劃。請先使用每個子網域執行這些步驟，最後使用組織中的最上層網域，再繼續進行下一個步驟。

1. 監控實作 DMARC 的影響 (p=無）。
   + 從子網域或網域的簡單監控模式記錄開始，該記錄會請求郵件接收組織將他們使用該網域看到的訊息統計資料傳送給您。監控模式記錄是 DMARC TXT 記錄，其政策設為無 `p=none`。
   + 透過 DMARC 產生的報告將提供通過這些檢查的訊息數量和來源，而不是未通過這些檢查的訊息。您可以輕鬆查看它們涵蓋或未涵蓋多少合法流量。您將會看到轉送的跡象，因為如果修改內容，轉送的訊息將會失敗 SPF 和 DKIM。您也會開始看到有多少詐騙訊息正在傳送，以及它們的傳送來源。
   +  此步驟的目標是了解當您實作以下兩個步驟之一時，哪些電子郵件會受到影響，並讓任何第三方或授權寄件者使其 SPF 或 DKIM 政策保持一致。
   + 最適合現有網域。

1. 請求外部郵件系統隔離未通過 DMARC 的郵件 (p=隔離）。
   + 當您認為所有或大部分的合法流量傳送的網域都與 SPF 或 DKIM 一致，而且您了解實作 DMARC 的影響時，您可以實作隔離政策。隔離政策是 DMARC TXT 記錄，其政策設定為隔離 `p=quarantine`。透過這樣做，您要求 DMARC 接收者將失敗 DMARC 的網域訊息放入垃圾郵件資料夾的本機對等資料夾中，而不是客戶的收件匣。
   + 最適合在步驟 1 期間轉換已分析 DMARC 報告的網域。

1. 請求外部郵件系統不接受失敗 DMARC (p=reject) 的訊息。
   + 實作拒絕政策通常是最後一個步驟。拒絕政策是 DMARC TXT 記錄，其政策設定為拒絕 `p=reject`。當您這樣做時，您要求 DMARC 接收者不要接受未通過 DMARC 檢查的訊息，這表示他們甚至不會被隔離到垃圾郵件或垃圾郵件資料夾，但將被直接拒絕。
   + 使用拒絕政策時，您會確切知道哪些訊息未通過 DMARC 政策，因為拒絕會導致 SMTP 退信。透過隔離，彙總資料會提供電子郵件傳遞或失敗 SPF、DKIM 和 DMARC 檢查百分比的相關資訊。
   + 最適合經過前兩個步驟的新網域或現有網域。

## 透過 SPF 來遵循 DMARC
<a name="send-email-authentication-dmarc-spf"></a>

若要讓電子郵件遵循以 SPF 為基礎的 DMARC 驗證，需符合下列條件：
+ 訊息必須根據要發佈至自訂「寄件人」網域 DNS 組態的有效 SPF （類型 TXT) 記錄，傳遞 SPF 檢查。
+ 電子郵件標頭的寄件者地址中的網域必須與 MAIL FROM 地址中指定的網域或子網域對齊 （符合）。為了讓 SPF 與 SES 保持一致，網域的 DMARC 政策不得指定嚴格的 SPF 政策 (aspf=s)。

為了符合這些要求，請完成以下步驟：
+ 完成 [使用自訂「寄件人」網域](mail-from.md) 中的步驟以設定自訂的「寄件人」網域。
+ 請確任您的傳送網域對 SPF 採取寬鬆政策。如果您尚未變更網域的政策對齊，預設會使用寬鬆政策，SES 也是如此。
**注意**  
若要判定網域對於 SPF 採取的 DMARC 符合度，可於命令列輸入下列命令，以 `example.com` 取代您的網域：  

  ```
  dig TXT _dmarc.example.com
  ```
在此命令輸出檔的 **Non-authoritative answer (非授權答案)** 下，尋找以 `v=DMARC1` 開頭的記錄。若此記錄包含 `aspf=r` 字串，或如果 `aspf` 字串完全未顯示，那麼您的網域就是對於 SPF 採取寬鬆的符合度。若記錄包含 `aspf=s` 字串，那麼您的網域就是對於 SPF 採取嚴格的符合度。您的系統管理員將需自網域中 DNS 組態的 DMARC TXT 記錄移除此標籤。  
或者，您可以使用 Web 型 DMARC 查詢工具，例如來自 dmarcian 網站的 [DMARC Inspector](https://dmarcian.com/dmarc-inspector/)，或來自 MxToolBox 網站的 [DMARC Check Tool](https://mxtoolbox.com/dmarc.aspx)，來判斷您網域的 SPF 政策一致性。

## 透過 DKIM 來遵循 DMARC
<a name="send-email-authentication-dmarc-dkim"></a>

若要讓電子郵件遵循以 DKIM 為基礎的 DMARC 驗證，需符合下列條件：
+ 訊息必須具有有效的 DKIM 簽章，並通過 DKIM 檢查。
+ DKIM 簽章中指定的網域必須與寄件者地址中的網域對齊 （相符）。如果網域的 DMARC 政策指定 DKIM 的嚴格一致性，這些網域必須完全相符 (SES 預設使用嚴格的 DKIM 政策）。

為了符合這些要求，請完成以下步驟：
+ 請完成 [Amazon SES 中的 Easy DKIM](send-email-authentication-dkim-easy.md) 中的程序以設定 Easy DKIM。使用 Easy DKIM 時，Amazon SES 自動簽署電子郵件。
**注意**  
除了使用 Easy DKIM 外，您也可以[手動簽署郵件](send-email-authentication-dkim-manual.md)。不過，若您選擇採取此方法，則必須謹慎處理，因為 Amazon SES 不會驗證您所建構的 DKIM 簽章。因此，我們強烈建議您使用 Easy DKIM。
+ 確保 DKIM 簽章中指定的網域與寄件者地址中的網域對齊。或者，如果從寄件者地址中的網域子網域傳送，請確定您的 DMARC 政策設定為寬鬆對齊。
**注意**  
若要判定網域對於 DKIM 採取的 DMARC 符合度，可於命令列輸入下列命令，以 `example.com` 取代您的網域：  

  ```
  dig TXT _dmarc.example.com
  ```
在此命令輸出檔的 **Non-authoritative answer (非授權答案)** 下，尋找以 `v=DMARC1` 開頭的記錄。若此記錄包含 `adkim=r` 字串，或如果 `adkim` 字串完全未顯示，那麼您的網域就是對於 DKIM 採取寬鬆的符合度。若記錄包含 `adkim=s` 字串，那麼您的網域就是對於 DKIM 採取嚴格的符合度。您的系統管理員將需自網域中 DNS 組態的 DMARC TXT 記錄移除此標籤。  
或者，您可以使用 Web 型 DMARC 查詢工具，例如來自 dmarcian 網站的 [DMARC Inspector](https://dmarcian.com/dmarc-inspector/) 或來自 MxToolBox 網站的 [DMARC Check Tool](https://mxtoolbox.com/dmarc.aspx)，來判斷網域的 DKIM 政策一致性。

# 在 Amazon SES 中使用 BIMI
<a name="send-email-authentication-bimi"></a>

適用於訊息識別的品牌指標 (BIMI) 是一種電子郵件規格，可以在支援的電子郵件用戶端內，讓通過品牌身分驗證的電子郵件訊息旁邊顯示品牌標誌。

BIMI 是直接與身分驗證連接的電子郵件規格，但它不是獨立的電子郵件身分驗證協議，因為它要求您的所有電子郵件都遵守 [DMARC](send-email-authentication-dmarc.md) 身份驗證。

雖然 BIMI 需要 DMARC，但 DMARC 要求您的網域必須擁有 SPF 或 DKIM 記錄以對齊，但最好同時包含 SPF 和 DKIM 記錄以提高安全性，因為某些電子郵件服務提供者 (ESP) 在使用 BIMI 時需要同時包含兩者。以下部分將介紹在 Amazon SES 中實作 BIMI 的步驟。

## 在 SES 中設定 BIMI
<a name="bimi-setup-procedure"></a>

您可以為您自己的電子郵件網域設定 BIMI — 在 SES 中稱為*自訂* MAIL FROM 網域。完成設定後，從該網域傳送的所有訊息都將在[支援 BIMI 的電子郵件用戶端中顯示您的 BIMI 標誌](https://bimigroup.org/bimi-infographic/)。

若要讓您的電子郵件顯示 BIMI 標誌，您必須在 SES 中設定一些先決條件 —在下列程序中，將概括這些先決條件，並將引用專門的部分來詳細介紹這些主題。此處將詳細介紹 BIMI 的特定步驟以及在 SES 中設定時的必要條件。

**若要設定自訂 MAIL FROM 網域**

1. 您必須在 SES 中設定自訂 MAIL FROM 網域，並針對該網域發布 SPF (類型 TXT) 和 MX 記錄。如果您還沒有自訂 MAIL FROM 網域，或想要建立新的網域用於 BIMI 標誌，請參閱 [使用自訂「寄件人」網域](mail-from.md)。

1. 使用簡易 DKIM 設定您的網域。請參閱 [Amazon SES 中的 Easy DKIM](send-email-authentication-dkim-easy.md)。

1. 使用 DMARC 來設定您的網域，方法是使用下列 BIMI 所需的強制執行政策詳細資訊，向 DNS 供應商發佈 TXT 記錄，類似於下列兩個範例之一：    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/ses/latest/dg/send-email-authentication-bimi.html)

   在上述的 DMARC 政策範例中，BIMI 需要：
   + 應該將 `example.com` 以您的網域或子網域名稱取代。
   + `p=` 值可以是：
     + 如圖所示，將*百分比*值設為 *100* 的*隔離*，或
     + *拒絕*，如圖所示。
   + 如果您是從子網域傳送，則 BIMI 要求父網域也必須具有此強制執行政策。子網域將受到父網域的政策約束。但是，如果您在父網域發布的內容之外還為您的子網域新增 DMARC 記錄，則子網域也必須具有相同的強制政策，才有資格使用 BIMI。
   + 如果您從未為您的網域設定 DMARC 政策，請參閱 [遵守 Amazon SES 中的 DMARC 身份驗證協議](send-email-authentication-dmarc.md) 確保僅使用特定於 BIMI 的 DMARC 政策值，如下所示。

1. 將您的 BIMI 標誌製作為可縮放向量圖形 (SVG) `.svg` 檔案—BIMI 所需的特定 SVG 設定檔定義為 SVG 便攜式/安全 (SVG P/S)。為了讓您的標誌能顯示於電子郵件用戶端中，必須完全符合這些規格。請參閱 [BIMI Group](https://bimigroup.org/) 有關[建立 SVG 標誌檔案](https://bimigroup.org/creating-bimi-svg-logo-files/)的指南和推薦的 [SVG 轉換工具](https://bimigroup.org/svg-conversion-tools-released/)。

1. (選用) 取得驗證標誌憑證 (VMC)。某些 ESP (例如 Gmail 和 Apple) 要求提供 VMC 證明您擁有 BIMI 標誌的商標和內容。雖然這不是在網域上實作 BIMI 的要求，但如果您向強制 VMC 合規性的 ESP 用戶端傳送郵件，您的 BIMI 標誌將不會顯示在電子郵件用戶端中。請參閱 BIMI Group 對[參與憑證授權單位](https://bimigroup.org/verified-mark-certificates-vmc-and-bimi/)的參考資料，以取得您標誌的 VMC。

1. 將您 BIMI 標誌的 SVG 檔案託管在您擁有存取權的伺服器上，以便透過 HTTPS 公開存取。例如，您可以將其上傳到 [Amazon S3 儲存貯體](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html)。

1. 建立並發布包含導向您標誌 URL 的 BIMI DNS 記錄。當[支援 BIMI 的 ESP](https://bimigroup.org/bimi-infographic/) 檢查您的 DMARC 記錄時，它也會尋找包含您標誌 `.svg` 檔案 URL 的 BIMI 記錄，以及您 VMC `.pem` 檔案的 URL (若已設定)。如果記錄符合，將顯示您的 BIMI 標誌。

   透過 DNS 提供者搭配下列顯示的值發布 TXT 記錄，使用 BIMI 設定您的網域—從網域傳送顯示於第一個範例中；從子網域傳送顯示於第二個範例中。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/ses/latest/dg/send-email-authentication-bimi.html)

   在上述 BIMI 記錄中的範例：
   + 名稱值應直接指定 `default._bimi.` 為子網域，`example.com` 或 `marketing.example.com` 應該以您的網域或子網域名稱取代。
   + `v=` 值是 BIMI 記錄的*版本*。
   + `l=` 值是代表指向圖像 `.svg` 文件 URL 的*標誌*。
   + `a=` 值是代表指向憑證 `.pem` 檔案 URL 的*授權單位*。

   您可以使用 BIMI Group 的 [BIMI Inspector](https://bimigroup.org/bimi-generator/) 之類的工具驗證您的 BIMI 記錄。

此過程的最後一步是定期向支援 BIMI 標誌放置的 ESP 傳送模式。您的網域應該具備定期的傳送規律，並且在傳送的 ESP 中應具有良好信譽。若您沒有建立信譽或傳送規律，BIMI 標誌放置需要一些時間才能增加至 ESP。

您可以通過 [BIMI Group](https://bimigroup.org/) 組織找到更多與 BIMI 有關的資訊和資源。