本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon SES 中的電子郵件格式
用戶端對 Amazon SES 發出請求時,Amazon SES 會建構符合網際網路訊息格式規格 (RFC 5322
-
標題 - 包含路由指示與訊息相關資訊。範例為寄件者的地址,收件人的地址、主旨和日期。標題類似於郵寄信件上方的資訊,但是可以包含許多其他類型的資訊,例如訊息格式。
-
內文 - 包含訊息本身的文字。
-
信封 - 包含 SMTP 工作階段期間,電子郵件用戶端與電子郵件伺服器之間進行通訊的實際路由。此電子郵件信封資訊類似於郵寄信封上的資訊。電子郵件信封的路由資訊通常與電子郵件標題中的路由資訊是相同的,但並非絕對。例如,當您送密件副本 (BCC) 時,實際的收件人地址 (自信封衍生) 與顯示在收件人電子郵件客戶端的「收件人」地址 (自標題衍生) 不同。
以下為電子郵件的簡易範例。此標頭後接空白列,然後試電子郵件的內文。信封不會顯示,因為信封是用於在 SMTP 工作階段於客戶端與郵件伺服器之間通訊,而非做為電子郵件本身的一部分。
Received: from abc.smtp-out.amazonses.com (123.45.67.89) by in.example.com (87.65.43.210); Fri, 17 Dec 2010 14:26:22 From: "Andrew" <andrew@example.com>; To: "Bob" <bob@example.com> Date: Fri, 17 Dec 2010 14:26:21 -0800 Subject: Hello Message-ID: <61967230-7A45-4A9D-BEC9-87CBCF2211C9@example.com> Accept-Language: en-US Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Hello, I hope you are having a good day. -Andrew
以下章節說明電子郵件標題與內文,並指出您使用 Amazon SES 時需要提供的資訊。
電子郵件標題
每個電子郵件訊息有一個標題。每個一標題行都包含後面接著冒號、再接著欄位內文的標題。當您在電子郵件客戶端中讀取電子郵件時,電子郵件客戶端通常會顯示下列標題欄位的值:
-
收件人 - 訊息收件人的電子郵件地址。
-
副本 - 訊息副本收件人的電子郵件地址。
-
寄件人 - 傳送電子郵件的地址。
-
主旨 - 訊息主題摘要。
-
日期 - 電子郵件傳送的時間和日期。
有許多其他標題欄位,提供路由資訊並說明訊息內容。電子郵件用戶端通常不會對使用者顯示這些欄位。如需 Amazon SES 接受的標題欄位完整清單,請參閱 Amazon SES標頭欄位。使用 Amazon SES 時,尤其需要了解「寄件人」、「回覆至」、和「傳回路徑」標題欄位之間的差別。如之前的說明,「寄件人」地址為訊息寄件者的電子郵件地址,而「回覆至」和「傳回路徑」則如下所述:
-
回覆至 - 回覆電子郵件時將傳送的目標電子郵件地址。在預設情況下,回覆會傳送到原始寄件者的電子郵件地址。
-
傳回路徑 - 訊息退信與投訴應傳送的目標電子郵件地址。「傳回路徑」有時稱為「信封來自」(envelope from)、「信封寄件者」(envelope sender) 或「寄件人」(MAIL FROM)。
注意
使用 Amazon SES 時,建議您一律設定「傳回路徑」參數,才能得知退信狀況並在發生時採取修正動作。
若要將退回的訊息與其原本設定的收件人配對,您可以使用可變信封返回路徑 (VERP)。有了可變信封返回路徑 (VERP),可為每個收件人設定不同的「傳回路徑」,若訊息被退回,您就能自動知道哪個收件人退回訊息,而不用開啟退信訊息並進行解析。
電子郵件內文
電子郵件內文包含訊息的文字。內文可使用下列格式傳送:
-
HTML - 如果收件人的電子郵件客戶端可以解譯 HTML,內文可以包含格式化文字和超連結
-
純文字 - 如果收件人的電子郵件客戶端以文字為基礎,內文不可包含任何無法列印的字元。
-
同時使用 HTML 和純文字 - 當您使用兩種格式在單一訊息中傳送相同內容時,收件人的電子郵件客戶端將根據其功能來決定要顯示何種格式。
若您傳送電子郵件訊息給大量的收件人,那麼同時使用 HTML 和文字傳送是可以理解的。部分收件人會有支援 HTML 的電子郵件客戶端,他們可以按一下內嵌的超連結訊息。使用以文字為基礎的電子郵件用戶端收件人將需要您加入 URL,讓他們可以複製並使用 Web 瀏覽器開啟。
您需要提供給 Amazon SES 的電子郵件資訊
透過 Amazon SES 傳送電子郵件時,您需要提供的資訊取決於您呼叫 Amazon SES 的方式。您可以提供最少量的資訊,並讓 Amazon SES 處理所有格式。或者,如果您想要執行更進階的操作,例如傳送附件,您可以自行提供原始訊息。以下各節會說明您在使用 Amazon SES API、Amazon SES SMTP 界面或 Amazon SES 主控台傳送電子郵件時需要提供的資訊。
Amazon SES API
如果您直接呼叫 Amazon SES API,您呼叫的是 SendEmail
或 SendRawEmail
API。您需要提供的資訊量將取決於您的呼叫何種 API。
-
SendEmail API
需要您提供來源地址、目的地地址、訊息主旨和訊息內文。您可以選擇提供「回覆至」地址。當您呼叫此 API 時,Amazon SES 將自動組合一封格式正確的分段多用途網際網路郵件延伸 (MIME) 電子郵件訊息,由電子郵件用戶端軟體針對顯示進行最佳化。如需詳細資訊,請參閱「使用 Amazon 傳送格式化的電子郵件 SES API」。 -
SendRawEmail
API 可提供透過指定標頭、MIME 部分和內容類型格式化及傳送您自己電子郵件原始碼訊息的彈性。SendRawEmail
通常是由進階使用者使用。您需要提供訊息內文以及網際網路訊息格式規格 (RFC 5322) 中指定為必要的所有標頭欄位。如需詳細資訊,請參閱 使用 Amazon SES API v2 傳送原始電子郵件。
如果您使用 AWS 軟體開發套件來呼叫 Amazon SES API,您將需提供上方列出的資訊給對應的函數 (例如用於 Java 的 SendEmail
和 SendRawEmail
)。
如需使用 Amazon SES API 傳送電子郵件的詳細資訊,請參閱 使用 Amazon SESAPI傳送電子郵件。
Amazon SES SMTP 界面
當您透過 SMTP 界面存取 Amazon SES 時,您的 SMTP 用戶端應用程式會組合訊息,因此您需要提供的資訊取決於您所使用的應用程式。客戶端與伺服器間的 SMTP 交換至少將需要來源地址、目的地地址以及訊息中繼資料等資訊。
如需使用 Amazon SES SMTP 界面傳送電子郵件的詳細資訊,請參閱 使用 Amazon SES SMTP 介面傳送電子郵件。
Amazon SES 主控台
當您使用 Amazon SES 主控台傳送電子郵件時,您需要提供的資訊量將取決於您選擇傳送的是格式化或原始電子郵件。
-
若要傳送格式化電子郵件,您需要提供來源地址、目的地地址、訊息主旨和訊息內文。Amazon SES 將自動組合一封格式正確的分段 MIME 電子郵件訊息,由電子郵件用戶端軟體針對顯示進行最佳化。您也可以指定「回覆到」和「傳回路徑」欄位。
-
若要傳送原始電子郵件,您需要提供來源地址、目標地址和訊息內容,其中必須包含訊息內文與網際網路訊息格式規格 (RFC 5322
) 中指定為必要的所有標頭欄位。