電子郵件地址與網域驗證問題 - Amazon Simple Email Service

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

電子郵件地址與網域驗證問題

若要使用 Amazon SES 來驗證電子郵件地址或網域,需使用 Amazon SES 主控台或 Amazon SES API 來啟動程序。本節包含可能有助於解決驗證程序問題的資訊。

注意

在以下操作程序中,根據您使用的 DKIM 形式,對 DNS 記錄的參考可以參閱 CNAME 記錄或 TXT 記錄。Easy DKIM 使用 CNAME 記錄和您自有的 DKIM (BYODKIM) 使用 TXT 記錄。詳細的驗證程序提供給每個 Easy DKIM 或者 BYODKIM

常見的網域驗證問題

如果您嘗試使用 透過 DNS 提供者驗證 DKIM 網域身分 中的程序來驗證網域卻遇到問題,請檢閱下方的可能原因和解決方案。

  • 您嘗試驗證並非您所有的網域 - 您無法驗證並非您所有的網域。例如,如果您想要從 gmail.com 網域上的地址透過 Amazon SES 傳送電子郵件,您需要專門驗證該電子郵件地址。您無法驗證整個 gmail.com 網域。

  • 您嘗試驗證私有網域 - 如果無法透過公有 DNS 解決 DNS 記錄,則無法驗證網域。

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

  • 您的 DNS 提供者將網域名稱附加到 DNS 記錄的結尾處 - 有些 DNS 提供者會自動將您的網域名稱附加到 DNS 記錄的屬性名稱。例如,如果您建立了屬性名稱是 _domainkey.example.com 的記錄,提供者可能會附加網域名稱,產生 _domainkey.example.com.example.com。為了避免重複的網域名稱,輸入 DNS 紀錄時,請在網域名稱結尾處加上句號。此步驟可告知您的 DNS 提供者,他們不需要將網域名稱附加到記錄。

  • 您的 DNS 供應商修改了 DNS 記錄值 - 有些供應商會自動將 DNS 記錄值修改為只使用小寫字母。只有當驗證記錄的屬性值與您啟動網域所有權驗證程序時 Amazon SES 所提供的值完全相符,Amazon SES 才會驗證您的網域。如果您網域的 DNS 提供者將 DNS 記錄值變更為只使用小寫字母,請聯絡 DNS 提供者以尋求其他協助。

  • 您想要多次驗證相同的網域 – 由於您在不同區域內傳送,或者您自位於同網域中的多個 AWS 帳戶傳送,因此您可能需要驗證您的網域不只一次。如果您的 DNS 提供者不允許您擁有一個以上含相同屬性名稱的 DNS 記錄,您仍有可能驗證兩個網域。如果您的 DNS 提供者允許的話,您可以指派多個屬性值給相同的 DNS 記錄。例如,如果您的 DNS 是由 Amazon Route 53 管理,您可以完成下列步驟,為相同的 CNAME 記錄設定多個值:

    1. 在 Route 53 主控台中,選擇您在第一個區域中驗證網域時所建立的 CNAME 記錄。

    2. Value (值) 方塊中,移至現有的屬性值結尾,然後按 Enter 鍵。

    3. 新增其他區域的屬性值,然後儲存記錄集。

    如果您的 DNS 提供者不允許您將多個值指派給相同的 DNS 記錄,您可以在 DNS 記錄的屬性名稱中包含 _domainkey 驗證網域一次,另一次驗證則將屬性名稱的 _domainkey 移除。這個解決方案的缺點是,相同的網域您只能驗證兩次。

檢查網域驗證設定

您可以使用以下程序來檢查 Amazon SES 網域驗證的 DNS 記錄是否已正確發佈到您的 DNS 伺服器。此程序使用 nslookup 工具,適用於 Windows 和 Linux。在 Linux 上,您也可以使用 dig

這些說明中的命令皆於 Windows 7 上執行,而我們使用的網域範例是 ses-example.com,由使用 CNAME 紀錄的 Easy DKIM 設定。

在此程序中,您會先看到您的網域使用的 DNS 伺服器,然後查詢這些伺服器以檢視 CNAME 記錄。之所以查詢提供您的網域的 DNS 伺服器,是因為這些伺服器包含您的網域之最新資訊,可能需要時間才能傳播到其他 DNS 伺服器。

若要確認您的網域驗證 CNAME 記錄已發佈到您的 DNS 伺服器
  1. 執行以下步驟來尋找網域的名稱伺服器。

    1. 前往命令列。若要前往 Windows 7 的命令列,請選擇 Start (開始),然後輸入 cmd。在以 Linux 為基礎的作業系統上,開啟終端機視窗。

    2. 在命令提示字元中輸入以下內容,其中 <domain> 是您的網域。這將列出所有提供您網域的名稱伺服器。

      nslookup -type=NS <domain>

      如果您的網域是 ses-example.com,這個命令將如下所示:

      nslookup -type=NS ses-example.com

      命令的輸出將列出提供您網域的名稱伺服器。您將在後續步驟中查詢其中一個伺服器。

  2. 執行下列步驟來確認 CNAME 記錄已正確發佈。請謹記,Amazon SES 會為 Easy DKIM 身分驗證產生三個 CNAME 記錄,因此對三個記錄重複以下操作程序。

    1. 在命令提示中輸入以下內容,其中 <random string> 是 SES 產生的 CNAME 名稱,<domain> 是您的網域,<name server> 是您在步驟 1 找到的其中一個名稱伺服器。

      nslookup -type=CNAME <random string>_domainkey.<domain> <name server>

      在我們的 ses-example.com 範例中,若在步驟 1 找到的名稱伺服器名為 ns1.name-server.net,且 SES 產生的 <random string>4hzwn5lmznmmjyl2pqf2agr3uzzzzxyz,我們便要輸入下列內容:

      nslookup -type=CNAME 4hzwn5lmznmmjyl2pqf2agr3uzzzzxyz_domainkey.ses-example.com ns1.name-server.net
    2. 在命令的輸出中,驗證 canonical name = 之後的字串與您在 Amazon SES 主控台的身分清單中選擇網域時所看到的 CNAME 值相符。

      在我們的範例中,我們使用 4hzwn5lmznmmjyl2pqf2agr3uzzzzxyz.dkim.amazonses.com 的值在 4hzwn5lmznmmjyl2pqf2agr3uzzzzxyz_domainkey.ses-example.com 下尋找 CNAME 記錄。如果記錄已正確發佈,預期命令有以下輸出:

      4hzwn5lmznmmjyl2pqf2agr3uzzzzxyz_domainkey.ses-example.com canonical name = "4hzwn5lmznmmjyl2pqf2agr3uzzzzxyz.dkim.amazonses.com"

常見的電子郵件驗證問題

  • 驗證電子郵件未送達 - 如果您完成「驗證電子郵件地址身分」中的程序,但並未在幾分鐘內收到驗證電子郵件,請完成以下步驟:

    • 檢查您嘗試驗證之電子郵件地址的垃圾郵件或垃圾郵件資料夾。

    • 確認您嘗試驗證的地址能夠接收電子郵件。使用個別的電子郵件地址 (例如,您的個人電子郵件地址),傳送測試電子郵件到您想要驗證的地址。

    • 查看 Amazon SES 主控台中的已驗證地址清單。確認您嘗試驗證的電子郵件地址中沒有任何錯誤。