Amazon Simple Email Service
開發人員指南

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

當您嘗試驗證電子郵件地址時,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 使用者指南

注意

To complete the procedure in this section, you must use version 1.14.6 or later of the AWS CLI. For best results, upgrade to the latest version of the AWS CLI. For more information about updating the AWS CLI, see Installing the AWS Command Line Interface in the AWS Command Line Interface User Guide.

  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。儲存檔案為 customverificationemail.json

  2. 在命令列輸入下列命令來建立自訂的驗證電子郵件範本:aws ses create-custom-verification-email-template --cli-input-json file://customverificationemail.json

  3. 或者,您可以輸入下列命令確認已建立範本:aws ses list-custom-verification-email-templates

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

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

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

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

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

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

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

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

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

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

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

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

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

問題 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 -encode imagefile.png output.tmp && findstr /v /c:- output.tmp > output.txt && del output.tmp

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

注意

如果您使用 Windows 命令列來為影像編碼,您必須在文字編輯器開啟 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 中,身分包含已驗證的網域和電子郵件地址。如果您已為自己的電子郵件傳送驗證網域或電子郵件地址,這些身分會包含在 10,000 個身分限制內。

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

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

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

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

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

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

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

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

若您未請求驗證此電子郵件地址,請忽略此訊息。如有任何疑慮,請將此訊息轉寄至以下電子郵件地址,並說明您的問題或意見。

此段文字中的電子郵件地址連結指向 ses-review@amazon.com,是 Amazon SES 團隊主動監控的收件匣。

問題 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 沙盒