在 Amazon SES 中建立和驗證身分 - Amazon Simple Email Service

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

在 Amazon SES 中建立和驗證身分

在 Amazon SES 中,您可以在網域層級建立身分,也可以建立電子郵件地址身分。這些身分類型並不互斥。在大多數情況下,建立網域身分可消除建立和驗證個別電子郵件地址身分的需求,除非您想要將自訂組態套用至特定的電子郵件地址。無論您是建立網域並根據網域利用電子郵件地址,或是建立個別電子郵件地址,這兩種方法都有好處。您選擇的方法取決於您的特定需求,如下所述。

建立和驗證電子郵件地址身分是開始使用 SES 的最快捷方式,但在網域層級驗證身分有其優點。當您驗證電子郵件地址身分時,僅可使用此電子郵件地址傳送郵件。但在驗證網域身分時,可以從驗證網域的任何子網域或電子郵件地址傳送電子郵件,而無需個別驗證每個子網域。例如,如果您建立並驗證 example.com 的網域身分,就無需為 a.example.com、a.b.example.com 建立個別的子網域身分,也無需為 user@example.com、user@a.example.com 等建立個別的電子郵件地址身分。

但請記住,使用從其網域繼承驗證的電子郵件地址身分僅限於直接的電子郵件傳送。如果您想執行更加進階的傳送,則還必須將其明確驗證為電子郵件地址身分。進階傳送包括使用具有組態集的電子郵件地址、用於委派傳送的政策授權,以及覆寫網域設定的組態。

為了協助釐清上述的驗證繼承和電子郵件傳送功能,以下資料表會將網域/電子郵件地址驗證的每個組合分類,並列出各自的繼承、傳送層級和顯示狀態:

僅驗證網域 僅驗證電子郵件地址 同時驗證網域和電子郵件地址
繼承層級 子網域和電子郵件地址會繼承父網域的驗證。 明確驗證電子郵件地址。
  • 子網域會繼承父網域的驗證。

  • 明確驗證電子郵件地址。

傳送層級 電子郵件地址僅限於直接的電子郵件傳送。 電子郵件地址可用於進階傳送* 電子郵件地址可用於進階傳送*
顯示狀態 主控台/API 狀態:
  • 網域/子網域 = 已驗證

  • 電子郵件地址 = 未驗證

主控台/API 狀態:
  • 電子郵件地址 = 已驗證

主控台/API 狀態:
  • 網域/子網域 = 已驗證

  • 電子郵件地址 = 已驗證。

*進階傳送包括使用具有組態集的電子郵件地址、用於委派傳送的政策授權,以及覆寫網域設定的組態。

若要從多個 AWS 區域中的同一網域或電子郵件地址傳送電子郵件,您必須為每個區域建立並驗證個別的身分。在每個區域中,您最多可以驗證 10,000 個身分。

建立並驗證網域及電子郵件地址身分時,請考慮以下:

  • 您可以從經驗證網域中的任何子網域或電子郵件地址傳送郵件,而無需個別驗證。例如,如果您建立並驗證 example.com 的身分,就無需為 a.example.com、a.b.example.com、user@example.com、user@a.example.com 等建立個別的身分。

  • RFC 1034 中所述,每個 DNS 標籤最多可以有 63 個字元,而整個網域名稱的總長度不得超過 255 個字元。

  • 如果您驗證共用根網域的網域、子網域或電子郵件地址,系統將根據您驗證時使用的最高精細等級來套用已驗證的身分設定 (例如意見回饋通知)。

    • 已驗證電子郵件地址身分設定優先於已驗證網域身分設定。

    • 已驗證的子網域身分設定優先於已驗證的網域身分設定,較低等級的子網域設定擇優先於較高等級的子網域設定。

      例如,假設您驗證 user@a.b.example.com、a.b.example.com、b.example.com 和 example.com。這些已驗證的身分設定將用於以下情況:

      • 從 user@example.com (未特別經過驗證的電子郵件地址) 傳出的電子郵件地址將使用 example.com 的設定。

      • 從 user@a.b.example.com 寄出的電子郵件 (已特別經過驗證的電子郵件地址) 將會使用 user@a.b.example.com 的設定。

      • 從 user@b.example.com (未特別經過驗證的電子郵件地址) 傳出的電子郵件地址將使用 b.example.com 的設定。

  • 您可以新增標籤到已驗證的電子郵件地址,無需執行額外的驗證步驟。若要新增標籤到電子郵件地址,請在帳戶名稱和「at」符號 (@) 之間加入加號 (+),後面接著文字標籤。例如,若您已驗證 sender@example.com,您可以使用 sender+myLabel@example.com 做為您電子郵件的 "From" 或 "Return-Path" 地址。您可以使用此功能來實施可變信封返回路徑 (VERP)。然後,您可以使用可變信封返回路徑 (VERP) 來偵測未傳遞的電子郵件地址並自郵寄清單中移除。

  • 網域名稱需區分大小寫。若您驗證 example.com,您也可以從 EXAMPLE.com 傳送電子郵件。

  • 電子郵件地址區分大小寫。若您驗證 sender@EXAMPLE.com,您無法從 sender@example.com 傳送電子郵件,除非您同時驗證 sender@example.com。

  • 在每個 AWS 區域 中,您最多可以驗證 10,000 個身分 (網域和電子郵件地址的任意組合)。

提示

如果您第一次使用 SES,可以使用開始使用精靈建立並驗證您的第一個身分 (電子郵件地址或網域)。

建立網域身分

建立網域身分的一部分任務是設定其 DKIM 型驗證。網域金鑰識別郵件 (DKIM) 是 Amazon SES 用來驗證網域所有權和接收郵件伺服器用來驗證電子郵件真實性的電子郵件身分驗證方法。您可以選擇使用 Easy DKIM 或「使用自有 DKIM (BYODKIM)」來設定 DKIM,同時根據您的選擇,您必須設定私有金鑰的簽署金鑰長度,如下所示:

  • Easy DKIM - 接受 Amazon SES 預設值 2048 位元,或者透過選擇 1024 位元來覆寫預設值。

  • BYODKIM - 私有金鑰長度必須至少為 1024 位元,而且最多為 2048 位元。

請參閱 DKIM 簽署金鑰長度,深入了解 DKIM 簽署金鑰長度以及如何變更金鑰長度。

下列程序說明如何使用 Amazon SES 主控台來建立網域身分。

若要建立網域身分
  1. 前往 https://console.aws.amazon.com/ses/ 登入 AWS Management Console 並開啟 Amazon SES 主控台。

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

  3. 選擇 Create identity (建立身分)

  4. Identity details (身分詳細資訊) 下,選取 Domain (網域) 做為您要建立的身分類型。您必須擁有網域 DNS 設定的存取權,才能完成網域驗證程序。

  5. Domain (網域) 欄位中輸入網域或子網域的名稱。

    提示

    若您的網域是 www.example.com,請輸入 example.com 作為您的網域。請不要包括「www.」 部分,因為如果您這麼做,網域驗證程序將無法成功。

  6. (選用) 如果您要指派預設組態集,則選取此核取方塊。

    1. 對於 Default configuration set (預設組態集),選取您要指派給身分的現有組態集。如果您尚未建立任何組態集,請參閱 使用 Amazon SES 中的組態集

      注意

      只有在傳送時未指定其他組態集時,Amazon SES 才會預設為指派的組態集。如果指定了組態集,Amazon SES 會套用指定的組態集來取代預設組態集。

  7. (選用) 如果您要使用自訂「寄件人」網域,則選取該核取方塊並完成下列步驟。如需更多詳細資訊,請參閱 使用自訂「寄件人」網域

    1. 針對 MAIL FROM domain (「寄件人」網域),輸入您要用作「寄件人」網域的子網域。這必須是您要驗證之網域身分的子網域。「寄件人」網域不應是您從中傳送電子郵件的網域。

    2. 對於 Behavior on MX failure (MX 故障時的行為),指出 Amazon SES 在傳送時找不到所需 MX 記錄時應採取的動作。請選擇下列其中一個選項:

      • Use default MAIL FROM domain (使用預設「寄件人」網域) - 若自訂「寄件人」網域的 MX 記錄未正確設定,Amazon SES 將使用 amazonses.com 的子網域。子網域會根據您使用 Amazon SES 的 AWS 區域 而不同。

      • 拒絕訊息 - 如果自訂「寄件人」網域的 MX 記錄未正確設定,Amazon SES 將會傳回 MailFromDomainNotVerified 錯誤。如果選擇此選項,您嘗試自此網域送出的電子郵件將被自動拒收。

    3. 針對 Publish DNS records to Route53 (將 DNS 記錄發佈到 Route53),如果您透過 Amazon Route 53 託管網域,只要勾選 Enabled (已啟用) 核取方塊,即可選擇讓 SES 在建立相關聯的 TXT 和 MX 記錄時進行發佈。如果您想稍後發佈這些記錄,請清除 Enabled (已啟用) 核取方塊 (您可以稍後再透過編輯身分的方式將記錄發佈到 Route 53 - 請參閱在 Amazon SES 中編輯現有身分)。

  8. (選擇性) 若要在使用 Easy DKIM 與 2048 位元簽署長度的 SES 預設設定之外設定自訂 DKIM 型驗證,請在 Verifying your domain (驗證您的網域) 之下展開 Advanced DKIM settings (進階 DKIM 設定),然後選擇您要設定的 DKIM 類型:

    1. Easy DKIM

      1. Identity type (身分類型) 欄位中,選擇 Easy DKIM

      2. DKIM signing key length (DKIM 簽署金鑰長度) 欄位中,選擇 RSA_2048_BIT 或 RSA_1024_BIT

      3. 針對 Publish DNS records to Route53 (將 DNS 記錄發佈到 Route53),如果您透過 Amazon Route 53 託管網域,只要勾選 Enabled (已啟用) 核取方塊,即可選擇讓 SES 在建立相關聯的 CNAME 記錄時進行發佈。如果您想稍後發佈這些記錄,請清除 Enabled (已啟用) 核取方塊 (您可以稍後再透過編輯身分的方式將記錄發佈到 Route 53 - 請參閱在 Amazon SES 中編輯現有身分)。

    2. 提供 DKIM 身分驗證字符 (BYODKIM)

      1. 確保您已產生公有私有金鑰對,並已將公鑰新增到 DNS 主機提供商。如需更多詳細資訊,請參閱 在 Amazon SES 中提供您自己的 DKIM 身分驗證字符 (BYODKIM)

      2. Identity type (身分類型) 欄位中,選擇 Provide DKIM authentication token (BYODKIM) (提供 DKIM 身分驗證字符 (BYODKIM))。

      3. 對於私有金鑰,請貼上從您的公有私有金鑰對產生的私有金鑰。私有金鑰必須使用至少 1024 位元 RSA 加密,最高可達 2048 位元,並且必須使用 base64 (PEM) 編碼方式進行編碼。

        注意

        您必須刪除所產生私有金鑰的第一行和最後一行 (分別為 -----BEGIN PRIVATE KEY----------END PRIVATE KEY-----)。此外,您必須移除所產生私有金鑰中的換行符號。產生的值是字元的字串,不帶空格或換行符號。

      4. 對於 Selector name (選取器名稱),輸入在網域 DNS 設定中指定的選取器名稱。

  9. 確保在 DKIM signatures (DKIM 簽章) 欄位中選中 Enabled (已啟用) 方塊。

  10. (選用) 新增一或多個標籤到您的網域身分,方法是包括標籤索引鍵及其選用值:

    1. 選擇 Add new tag (新增標籤),然後輸入 Key (索引鍵)。您可以選擇在 Value (值) 中為標籤新增選用值。

    2. 對不超過 50 的其他標籤重複上述步驟,或選擇 Remove (移除) 以移除標籤。

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

現在您已使用 DKIM 建立及設定了網域身分,您必須透過 DNS 提供者完成驗證流程 - 前往 透過 DNS 提供者驗證 DKIM 網域身分,按照 DNS 身分驗證程序驗證您為身分設定的 DKIM 類型。

透過 DNS 提供者驗證 DKIM 網域身分

建立使用 DKIM 設定的網域身分後,您必須透過 DNS 提供商按照與所選 DKIM 類型的相對應身分驗證程序來完成驗證過程。

若您尚未建立網域身分,請參閱 建立網域身分

注意

驗證網域身分需要存取網域的 DNS 設定。對這些設定的變更最多可能需要 72 小時才會傳播。

透過 DNS 提供商驗證 DKIM 網域身分
  1. Loaded identities (已載入身分) 資料表中,選取您要驗證的網域。

  2. 在身分詳細資訊頁面的 Authentication (身分驗證) 索引標籤上,展開 Publish DNS records (發佈 DNS 記錄)。

  3. 根據您用於設定網域的 DKIM 類型,即 Easy DKIMBYODKIM,請遵循個別的指示:

    Easy DKIM
    若要驗證使用 Easy DKIM 設定的網域
    1. Publish DNS records (發佈 DNS 記錄) 表中,複製此區段顯示的三個 CNAME 記錄,以便將其發佈 (新贈) 到您的 DNS 供應商。或者,您可以選擇 Download .csv record set (下載 .csv 記錄集),將記錄複本儲存到您的電腦。

      下圖顯示 CNAME 記錄範例,這些記錄會發佈到您的 DNS 供應商。

      
                                        身分詳細資訊頁面的 DKIM 區段。其中顯示三個虛構的 CNAME 記錄。
    2. 將 CNAME 記錄新增到您網域個別 DNS 主機供應商的 DNS 設定:

      • 所有 DNS 主機提供商 (不包括 Route 53)— 登入您網域的 DNS 或 Web 託管供應商,然後新增包含您之前複製或儲存之數值的 CNAME 記錄。不同供應商有不同的 DNS 記錄更新程序。進行這些程序之前,請參閱 DNS/託管供應商資料表

        注意

        少數 DNS 供應商不允許您在記錄名稱中包含底線 (_)。不過,DKIM 記錄名稱必須使用底線。如果您的 DNS 供應商不允許您在記錄名稱中輸入底線,請聯絡供應商的客戶支援團隊以尋求協助。

      • Route 53 做為 DNS 主機供應商 - 如果您在用於透過 SES 傳送電子郵件的帳戶上使用 Route 53,並且已註冊網域,則如果您啟用 SES 在建立時加以發佈,SES 會自動更新網域的 DNS 設定。否則,您可以在建立後按一下按鈕,輕鬆地將它們發佈到 Route 53,請參閱在 Amazon SES 中編輯現有身分。如果您的 DNS 設定未自動更新,或您希望將 CNAME 記錄新增至 Route 53,而其所在帳戶不同於您透過 SES 傳送電子郵件時所使用的帳戶,請完成 Editing records (編輯記錄) 中的程序。

      • 如果您不確定 DNS 供應商是誰 - 請詢問您的系統管理員以取得詳細資訊。

    BYODKIM
    若要驗證網域使用 BYODKIM 設定的網域
    1. 回顧重點,當您使用 BYODKIM 建立網域或設定現有網域時,您需要將私有金鑰 (從您的 自動產生公有私有金鑰對) 和選擇器名稱字首新增到 SES 主控台的「進階 DKIM 設定」頁面上的相對應欄位中。現在,您必須為 DNS 主機供應商更新下列記錄來完成驗證流程。

    2. Publish DNS records (發佈 DNS 記錄) 表中,複製 Name (名稱) 欄中顯示的選擇器名稱記錄,以發佈 (新增) 到您的 DNS 供應商。或者,您可以選擇 Download .csv record set (下載 .csv 記錄集),將記錄複本儲存到您的電腦。

      下圖顯示選擇器名稱記錄範例,這些記錄會發佈到您的 DNS 供應商。

      
                                        身分詳細資訊頁面的 DKIM 區段。其中顯示三個虛構的 CNAME 記錄。
    3. 登入您網域的 DNS 或 Web 託管供應商,然後新增您之前複製或儲存的選擇器名稱記錄。不同供應商有不同的 DNS 記錄更新程序。進行這些程序之前,請參閱 DNS/託管供應商資料表

      注意

      少數 DNS 供應商不允許您在記錄名稱中包含底線 (_)。不過,DKIM 記錄名稱必須使用底線。如果您的 DNS 供應商不允許您在記錄名稱中輸入底線,請聯絡供應商的客戶支援團隊以尋求協助。

    4. 如果您還沒有這樣做,請確保將公有金鑰從自己產生的公有私有金鑰對新增到網域的 DNS 或 Web 管理提供者。

      請注意,在 Publish DNS records (發佈 DNS 記錄) 表中,在 Value (值) 欄中顯示的公有金鑰記錄僅會顯示「p=customerProvidedPublicKey」,作為您提供給 DNS 供應商的公有金鑰值預留位置。

      注意

      將公有金鑰發佈 (新增) 到 DNS 供應商時,格式必須如下:

      • 您必須刪除所產生公開金鑰的第一行和最後一行 (分別為 -----BEGIN PUBLIC KEY----------END PUBLIC KEY-----)。此外,您必須移除所產生公開金鑰中的換行符號。產生的值是字元的字串,不帶空格或換行符號。

      • 您必須包含 p= 字首,如 Publish DNS records (發佈 DNS 記錄) 表中 Value (值) 欄位所示。

  4. 對 DNS 設定的變更最多可能需要 72 小時才會傳播。當 Amazon SES 在您網域的 DNS 設定中偵測到所有必需的 DKIM 記錄時,驗證程序即完成。您網域的 DKIM configuration (DKIM 設定) 顯示為 Successful (成功),並且 Identity status (身分狀態) 顯示為 Verified (已驗證)

  5. 若要設定和驗證自訂的「寄件人」網域,請遵循 設定自訂「寄件人」網域 中的程序。

下表包括幾個最常採用的 DNS 供應商的文件連結。這不是完整詳盡的清單,且不提供任何背書;同樣,若您的 DNS 供應商未列入清單,也不表示您無法搭配 Amazon SES 使用該網域。

DNS/託管供應商 文件連結

GoDaddy

新增 CNAME 記錄 (外部連結)

DreamHost

如何新增自訂 DNS 記錄?(外部連結)

Cloudflare

管理 Cloudflare 中的 DNS 記錄 (外部連結)

HostGator

使用 HostGator/eNom 管理 DNS 記錄 (外部連結)

Namecheap

如何為我的網域新增 TXT/SPF/DKIM/DMARC 記錄 (外部連結)

Names.co.uk

變更您的網域 DNS 設定 (外部連結)

Wix

在您的 Wix 帳戶中新增或更新 CNAME 記錄 (外部連結)

網域驗證故障診斷

如果您已完成上述的步驟,但在 72 小時過後仍未驗證您的網域,請檢查下列各項:

  • 請確定您在正確的欄位中輸入 DNS 記錄的值。有些 DNS 供應商會將 Name/host (名稱/主機) 欄位稱為 Host (主機)Hostname (主機名稱)。此外,某些供應商也會將 Record value (記錄數值) 欄位稱為 Points to (指向)Result (結果)

  • 請確定您的供應商未自動將您的網域名稱附加到您在 DNS 記錄中輸入的 Name/host (名稱/主機) 值。有些供應商會附加網域名稱,但不會指出他們已這樣做。如果您的供應商將網域名稱附加到 Name/host (名稱/主機) 值,請從值尾端移除網域名稱。您也可以嘗試在 DNS 記錄中的值結尾處加入句點。此句點會向供應商指出該網域名稱完全合格。

  • 在每一筆 DNS 記錄的 Name/host (名稱/主機) 值中需要有底線字元 (_)。如果您的供應商不允許在 DNS 記錄名稱中包含底線,請聯絡供應商的客戶支援部門,以尋求其他協助。

  • 您必須為您的網域新增到 DNS 設定的驗證記錄,隨每個 AWS 區域 而不同。如果您要使用網域從多個 AWS 區域 傳送電子郵件,您必須在其中每個區域建立和驗證個別的網域身分。

建立電子郵件地址身分

使用 Amazon SES 主控台完成此節中的程序,以建立電子郵件地址身分。

若要建立電子郵件地址身分 (主控台)
  1. 前往 https://console.aws.amazon.com/ses/ 登入 AWS Management Console 並開啟 Amazon SES 主控台。

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

  3. 選擇 Create identity (建立身分)

  4. Identity details (身分詳細資訊) 下,選擇 Email address (電子郵件地址) 做為您要建立的身分類型。

  5. 對於 Email address (電子郵件地址),輸入您想要使用的電子郵件地址。電子郵件地址必須是您可以接受郵件並有權存取的地址。

  6. (選用) 如果您要指派預設組態集,則選取此核取方塊。

    1. 對於 Default configuration set (預設組態集),選取您要指派給身分的現有組態集。如果您尚未建立任何組態集,請參閱 使用 Amazon SES 中的組態集

      注意

      只有在傳送時未指定其他組態集時,Amazon SES 才會預設為指派的組態集。如果指定了組態集,Amazon SES 會套用指定的組態集來取代預設組態集。

  7. (選用) 新增一或多個標籤到您的網域身分,方法是包括標籤索引鍵及其選用值:

    1. 選擇 Add new tag (新增標籤),然後輸入 Key (索引鍵)。您可以選擇在 Value (值) 中為標籤新增選用值。

    2. 對不超過 50 的其他標籤重複上述步驟,或選擇 Remove (移除) 以移除標籤。

  8. 若要建立您的電子郵件地址身分,請選擇 Create identity (建立身分)。建立完成後,您應該會在 5 分鐘內收到驗證電子郵件。下一個步驟是按照下一節中的驗證程序來驗證您的電子郵件地址。

    注意

    您可以自訂傳送到您嘗試驗證的郵件地址之訊息。如需更多詳細資訊,請參閱 使用自訂驗證電子郵件範本

現在您已建立電子郵件地址身分,您必須完成驗證過程 - 前往 驗證電子郵件地址身分

驗證電子郵件地址身分

建立電子郵件地址身分後,您必須完成驗證程序。

若您尚未建立電子郵件地址身分,請參閱 建立電子郵件地址身分

驗證電子郵件地址身分
  1. 檢查用於建立身分的電子郵件地址的收件匣,並尋找來自 no-reply-aws@amazon.com 的電子郵件。

  2. 開啟電子郵件,然後按一下連結,以完成電子郵件地址的驗證程序。完成之後,Identity status (身分狀態) 更新至 Verified (已驗證)

電子郵件地址驗證故障排除

若您在建立身分後的 5 分鐘內沒有收到驗證電子郵件,可以嘗試以下故障排除步驟:

  • 請確定您正確輸入電子郵件地址。

  • 請確定您嘗試驗證的電子郵件地址能夠接收電子郵件。您可以使用另一個電子郵件地址傳送測試電子郵件到您想要驗證的地址,來進行測試。

  • 檢查您的垃圾郵件資料夾。

  • 驗證電子郵件中的連結在 24 小時之後就過期。若要傳送新的驗證電子郵件,請選擇位於身分詳細資訊頁面頂端的 Resend (重新傳送)

建立和驗證身分,並同時指派預設組態集

您可以使用 Amazon SES API v2 中的 CreateEmailIdentity 作業,建立新的電子郵件身分並同時設定其預設組態集。

注意

在完成本節中的程序之前,您必須安裝和設定 AWS CLI。如需詳細資訊,請參閱 AWS Command Line Interface 使用者指南

若要使用 AWS CLI 設定預設組態集

aws sesv2 create-email-identity --email-identity ADDRESS-OR-DOMAIN --configuration-set-name CONFIG-SET

在上述命令中,以您想要驗證的電子郵件身分取代 ADDRESS-OR-DOMAIN。以您想要設定為身分的預設組態集之名稱取代 CONFIG-SET

如果命令執行成功,將不提供任何輸出便直接關閉。

To verify your email address (驗證電子郵件地址)

  1. 查看收件匣是否有您正在驗證的電子郵件地址。您將會收到包含下列主旨行的訊息:「Amazon Web Services - 在 RegionName 區域中的電子郵件地址驗證請求」,其中 RegionName 為您嘗試驗證之電子郵件地址所在的 AWS 區域名稱。

    開啟訊息,然後按一下其中的連結。

    注意

    驗證訊息中的連結將於訊息寄出的 24 小時後失效。如果您收到驗證電子郵件後已經過 24 小時,請重複步驟 1-5 來取得包含有效連結的驗證電子郵件。

  2. 在 Amazon SES 主控台的 Identity Management (身分管理) 下,選擇 Email Addresses (電子郵件地址)。在電子郵件地址清單中,尋找您正在驗證的電子郵件地址。如果電子郵件地址已通過驗證,Status (狀態) 欄位中的值將顯示為「已驗證」。

To verify your domain (驗證網域)

如果您在上述命令列程序中輸入了 --email-identity 參數的網域名稱,請參閱 驗證網域身分 以取得詳細資訊。

使用自訂驗證電子郵件範本

當您嘗試驗證電子郵件地址時,Amazon SES 會傳送電子郵件至類似下圖中顯示的範例地址。

有數個 Amazon SES 客戶建置應用程式 (例如電子郵件行銷套件或售票系統),透過 Amazon SES 代表自己的客戶傳送電子郵件。對於應用程式的最終使用者來說,電子郵件驗證程序可能會造成混淆:驗證電子郵件使用 Amazon SES 品牌,而非應用程式的品牌,而這些最終使用者從未直接註冊使用 Amazon SES。

如果您的 Amazon SES 使用案例要求客戶驗證他們的電子郵件地址以使用 ,您可以建立自訂的驗證電子郵件。這些自訂的電子郵件可幫助客戶降低困惑並提高客戶完成註冊程序的比率。

注意

若要使用此功能,您的 Amazon SES 帳戶必須不在沙盒內。如需詳細資訊,請參閱 申請生產存取權 (移出 Amazon SES 沙箱)

建立自訂驗證電子郵件範本

若要建立自訂驗證電子郵件,請使用 CreateCustomVerificationEmailTemplate API 操作。此操作會使用以下輸入:

屬性 描述
TemplateName 範本名稱。您指定的名稱必須是唯一的。
FromEmailAddress 傳送驗證電子郵件的電子郵件地址。您指定的地址或網域必須經過驗證才可用於 Amazon SES 帳戶。
注意

FromEmailAddress 屬性不支援顯示名稱 (也稱為「友善寄件人」名稱)。

TemplateSubject 驗證電子郵件的主旨行。
TemplateContent 電子郵件內文。電子郵件內文可以在特定限制下包含 HTML。如需更多詳細資訊,請參閱 自訂驗證電子郵件常見問答集
SuccessRedirectionURL 如果電子郵件地址成功驗證,使用者將會收到此 URL。
FailureRedirectionURL 如果電子郵件地址未成功驗證,使用者將會收到此 URL。

您可以使用 AWS 開發套件或 AWS CLI 透過 CreateCustomVerificationEmailTemplate 操作來建立自訂的驗證電子郵件範本。如需 AWS 軟體開發套件的詳細資訊,請參閱 Amazon Web Services 適用工具。如需 AWS CLI 的詳細資訊,請參閱 AWS 命令列界面

下節包括使用 AWS CLI 建立自訂的驗證電子郵件之程序。開這些程序假設您已安裝並設定 AWS CLI。如需安裝與設定 AWS CLI 的詳細資訊,請參閱 AWS Command Line Interface 使用者指南

注意

若要完成本節中的程序,您必須使用 1.14.6 或更新版的 AWS CLI。若要獲得最佳效果,請升級至最新版的 AWS CLI。如需有關更新 AWS CLI 的詳細資訊,請參閱《AWS Command Line Interface 使用者指南》中的安裝 AWS Command Line Interface

  1. 在文字編輯器中,建立新檔案。將下方內容貼入編輯工具中:

    { "TemplateName": "SampleTemplate", "FromEmailAddress": "sender@example.com", "TemplateSubject": "Please confirm your email address", "TemplateContent": "<html> <head></head> <body style='font-family:sans-serif;'> <h1 style='text-align:center'>Ready to start sending email with ProductName?</h1> <p>We here at Example Corp are happy to have you on board! There's just one last step to complete before you can start sending email. Just click the following link to verify your email address. Once we confirm that you're really you, we'll give you some additional information to help you get started with ProductName.</p> </body> </html>", "SuccessRedirectionURL": "https://www.example.com/verifysuccess", "FailureRedirectionURL": "https://www.example.com/verifyfailure" }
    重要

    為了更輕鬆地讀取前述範例,TemplateContent 屬性包含換行。如果您將前述範例貼到您的文字檔案,請先移除換行再繼續。

    以自訂值取代 TemplateNameFromEmailAddressTemplateSubjectTemplateContentSuccessRedirectionURLFailureRedirectionURL

    注意

    您為 FromEmailAddress 參數指定的電子郵件地址必須經過驗證,或者須為已驗證網域上的地址。如需詳細資訊,請參閱「在 Amazon SES 中驗證身分」。

    完成後,請將檔案儲存為 customverificationemail.json

  2. 在命令列中輸入下列命令來建立自訂的驗證電子郵件範本:

    aws sesv2 create-custom-verification-email-template --cli-input-json file://customverificationemail.json
  3. (選用) 您可以輸入下列命令確認範本已建立:

    aws sesv2 list-custom-verification-email-templates

編輯自訂驗證電子郵件範本

您可以使用 UpdateCustomVerificationEmailTemplate 操作來編輯自訂驗證電子郵件範本。此操作接受與 CreateCustomVerificationEmailTemplate 操作相同的輸入 (也就是 TemplateNameFromEmailAddressTemplateSubjectTemplateContentSuccessRedirectionURLFailureRedirectionURL 屬性)。不過,使用 UpdateCustomVerificationEmailTemplate 操作時將需要這些屬性。當您傳遞與現有自訂驗證電子郵件範本有相同名稱之 TemplateName 的值時,您指定的屬性將覆寫原本範本中的屬性。

使用自訂範本來傳送驗證電子郵件

在您建立至少一個自訂驗證電子郵件範本後,您可以呼叫 SendCustomVerificationEmail API 操作將此範本傳送給客戶。您可以使用任何 AWS 開發套件或 AWS CLI 來呼叫 SendCustomVerificationEmail 操作。SendCustomVerificationEmail 操作會使用以下輸入:

屬性 描述
EmailAddress 正在驗證的電子郵件地址。
TemplateName 自訂驗證電子郵件範本的名稱將會傳送到正在驗證的電子郵件地址。
ConfigurationSetName (選用) 傳送驗證電子郵件時使用的組態設定名稱。

例如,假設您的客戶使用應用程式中的表單來註冊您的服務。當客戶完成表單並提交後,您的應用程式將呼叫 SendCustomVerificationEmail 操作,傳送客戶的電子郵件地址與您想要使用的範本名稱。

您的客戶會收到一封電子郵件,該郵件使用您建立的自訂電子郵件範本。Amazon SES 會自動新增一個唯一的連結給收件人,同時附有簡短免責聲明。下圖顯示範本驗證電子郵件,該郵件使用於 建立自訂驗證電子郵件範本 中建立的範本。

自訂驗證電子郵件常見問答集

本節包含關於自訂驗證電子郵件範本功能之常見問答集的解答。

Q1. (問題 1):我可以建立多少個自訂驗證電子郵件範本?

您可以為每個 Amazon SES 帳戶建立最多 50 個自訂驗證電子郵件範本。

Q2. (問題 2): 自訂驗證電子郵件將以何種格式向收件人顯示?

自訂驗證電子郵件包含您在建立範本時指定的內容,接著將顯示連結,收件人須按下該連結才能驗證他們的電子郵件。

Q3. (問題 3): 我可以預覽自訂驗證電子郵件嗎?

若要預覽自訂驗證電子郵件,請使用 SendCustomVerificationEmail 操作來傳送驗證電子郵件到您擁有的地址。如果您沒有按一下驗證連結,Amazon SES 就不會建立新的身分。如果您按了驗證連結,您可以選擇性地使用 DeleteIdentity 操作來刪除新建立的身分。

問題 4:我可以在自訂驗證電子郵件範本中加入圖片嗎?

您可以使用 Base64 編碼在範本中 HTML 中內嵌圖片。您以此方式內嵌圖片時,Amazon SES 會自動將圖片轉換為附件。您可以發出以下其中一個命令在命令列上為影像編碼:

Linux, macOS, or Unix
base64 -i imagefile.png | tr -d '\n' > output.txt
Windows
certutil -encodehex -f imagefile.png output.txt 0x40000001

以您要列編碼的檔案名稱取代 imagefile.png。在以上兩種命令中,base64 編碼的影像將儲存到 output.txt

您可以將下列內容加入範本的 HTML 來內嵌 base64 編碼影像:<img src="data:image/png;base64,base64EncodedImage"/>

在之前的範例中,以編碼影像的檔案類型 (例如 jpg 或 gif) 來取代 png,並以 base64 編碼影像取代 base64EncodedImage (也就是其中一個前述命令的 output.txt 內容)。

問題 5:自訂驗證電子郵件範本包含的內容是否有大小限制?

自訂驗證電子郵件範本大小不可超過 10 MB。此外,包含 HTML 的自訂驗證電子郵件範本只能使用下表所列的標籤和屬性:

HTML 標籤 允許的屬性
abbr class, id, style, title
acronym class, id, style, title
address class, id, style, title
area class, id, style, title
b class, id, style, title
bdo class, id, style, title
big class, id, style, title
blockquote cite, class, id, style, title
body class, id, style, title
br class, id, style, title
button class, id, style, title
caption class, id, style, title
center class, id, style, title
cite class, id, style, title
code class, id, style, title
col class, id, span, style, title, width
colgroup class, id, span, style, title, width
dd class, id, style, title
del class, id, style, title
dfn class, id, style, title
dir class, id, style, title
div class, id, style, title
dl class, id, style, title
dt class, id, style, title
em class, id, style, title
fieldset class, id, style, title
font class, id, style, title
form class, id, style, title
h1 class, id, style, title
h2 class, id, style, title
h3 class, id, style, title
h4 class, id, style, title
h5 class, id, style, title
h6 class, id, style, title
head class, id, style, title
hr class, id, style, title
html class, id, style, title
i class, id, style, title
img align, alt, class, height, id, src, style, title, width
input class, id, style, title
ins class, id, style, title
kbd class, id, style, title
label class, id, style, title
legend class, id, style, title
li class, id, style, title
map class, id, style, title
menu class, id, style, title
ol class, id, start, style, title, type
optgroup class, id, style, title
option class, id, style, title
p class, id, style, title
pre class, id, style, title
q cite, class, id, style, title
s class, id, style, title
samp class, id, style, title
select class, id, style, title
small class, id, style, title
span class, id, style, title
strike class, id, style, title
strong class, id, style, title
sub class, id, style, title
sup class, id, style, title
table class, id, style, summary, title, width
tbody class, id, style, title
td abbr, axis, class, colspan, id, rowspan, style, title, width
textarea class, id, style, title
tfoot class, id, style, title
th abbr, axis, class, colspan, id, rowspan, scope, style, title, width
thead class, id, style, title
tr class, id, style, title
tt class, id, style, title
u class, id, style, title
ul class, id, style, title, type
var class, id, style, title
注意

自訂驗證電子郵件範本不能包含評論標記。

問題 6:我的帳戶中可以有幾個已驗證電子郵件地址?

您的 Amazon SES 帳戶在每個 AWS 區域中的已驗證身分不能超過 10,000 個。在 Amazon SES 中,身分包含已驗證的網域和電子郵件地址。

問題 7:我可以使用 Amazon SES 主控台建立自訂驗證電子郵件範本嗎?

目前只可使用 Amazon SES API 來建立、編輯和刪除自訂驗證電子郵件。

問題 8:當客戶接收自訂驗證電子郵件時,我可以追蹤開啟與點選事件嗎?

自訂驗證電子郵件不可含有開啟或點按追蹤。

問題 9:自訂的驗證電子郵件可以包含自訂標題嗎?

自訂的驗證電子郵件不可包含自訂標題。

問題 10:我可以移除顯示在自訂驗證電子郵件底部的文字嗎?

以下文字將自動新增到每封自訂驗證電子郵件的底部且無法移除:

若您未請求驗證此電子郵件地址,請忽略此訊息。

問題 11:驗證電子郵件是否經 DKIM 簽署?

為了讓驗證電子郵件進行 DKIM 簽署,您在建立驗證電子郵件範本時於 FromEmailAddress 屬性中指定的電子郵件地址須設定為產生 DKIM 簽章。如需有關設定網域和電子郵件地址 DKIM 的詳細資訊,請參閱 在 Amazon SES 中透過 DKIM 驗證電子郵件

問題 12:為什麼自訂驗證電子郵件範本 API 操作未出現在軟體開發套件或 CLI 中?

如果您無法在開發套件或 AWS CLI 中使用自訂的驗證電子郵件範本操作,您可能使用了舊版的軟體開發套件或 CLI。以下軟體開發套件和 CLI 中可以使用自訂的驗證電子郵件範本操作:

  • AWS Command Line Interface 1.14.6 版或更新版本

  • AWS SDK for .NET 3.3.205.0 版或更新版本

  • 適用於 C++ 的 AWS 開發套件 1.3.20170531.19 版或更新版本

  • AWS SDK for Go 1.12.43 版或更新版本

  • AWS SDK for Java 1.11.245 版或更新版本

  • AWS SDK for JavaScript 2.166.0 版或更新版本

  • AWS SDK for PHP 3.45.2 版或更新版本

  • AWS SDK for Python (Boto) 1.5.1 版或更新版本

  • AWS SDK for Ruby之 aws-sdk-ses Gem 套件 1.5.0 版或更新版本

問題 13:為什麼我在傳送自訂驗證電子郵件時收到 ProductionAccessNotGranted 錯誤 ?

ProductionAccessNotGranted 錯誤表示您的帳戶仍在 Amazon SES 沙盒中。唯有您的帳戶已從沙盒中移除,您才能傳送自訂驗證電子郵件。如需更多詳細資訊,請參閱 申請生產存取權 (移出 Amazon SES 沙箱)