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

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

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

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

常見的電子郵件驗證問題

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

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

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

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

常見的網域驗證問題

如果您嘗試使用 以 Amazon SES 驗證網域 中的程序來驗證網域卻遇到問題,請檢閱下方的可能原因和解決方案。

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

  • 您的 DNS 供應商不允許在 TXT 記錄名稱中使用底線 – 有些 DNS 供應商不允許您在網域的 DNS 記錄名稱中包含底線字元。如果您的供應商正是如此,您可以省略 TXT 記錄名稱的 _amazonses

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

  • 您的 DNS 供應商已修改 DNS 記錄值 – 有些供應商會自動將 DNS 記錄值修改成僅使用小寫字母。Amazon SES 只會在偵測到驗證記錄且其屬性值與 Amazon SES 提供的值 (於您開始網域驗證程序時提供) 完全符合時,驗證您的網域。如果您網域的 DNS 供應商將 TXT 記錄值變更為只使用小寫字母,請聯絡 DNS 供應商以尋求額外的協助。

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

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

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

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

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

檢查網域驗證設定

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

這些說明中的命令皆於 Windows 7 上執行,而我們使用的網域範例是 ses-example.com

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

若要確認您的網域驗證 TXT 記錄已發佈到您的 DNS 伺服器

  1. 執行以下步驟來尋找網域的名稱伺服器。

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

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

      nslookup -type=NS <domain>

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

      nslookup -type=NS ses-example.com

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

  2. 執行下列步驟來確認 TXT 記錄已正確發佈。

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

      nslookup -type=TXT _amazonses.<domain> <name server>

      在我們的 ses-example.com 範例中,若在步驟 1 中找到的名稱伺服器名為 ns1.name-server.net,我們便要輸入下列內容:

      nslookup -type=TXT _amazonses.ses-example.com ns1.name-server.net
    2. 在命令輸出中,確認續接在 text = 後方的字串符合您在 Amazon SES 主控台身分清單中所選網域的 TXT 值。

      在這個例子中,我們查找的TXT記錄位於 _mazonesses.sses-example.com 價值爲 fmxqxT/icOYx4aA/bEUrDPMeax9/s3frblS+niixmqk=。如果記錄正確發佈,我們預計該命令將具有以下輸出:

      _amazonses.ses-example.com text = "fmxqxT/icOYx4aA/bEUrDPMeax9/s3frblS+niixmqk="