Amazon Simple Email Service
開発者ガイド

E メールの形式と Amazon SES

クライアントが Amazon SES にリクエストを送ると、Amazon SES では、Internet Message Format 仕様(RFC 5322)に準拠した E メールメッセージを構築します。以下に説明するように、E メールはヘッダー本文、およびエンベロープで構成されます。

  • ヘッダー — ルーティングの指示およびメッセージに関する情報が含まれています。例では、送信者のアドレス、受取人のアドレス、件名、および日付となっています。ヘッダーは、手紙の一番上に書かれる情報に似ていますが、ヘッダーにはその他の数多くのタイプの情報 (メッセージの形式など) を含めることができます。

  • 本文 — メッセージ自体のテキストが含まれています。

  • エンベロープ — SMTP セッション中に E メールクライアントとメールサーバーの間でやり取りされる実際のルーティング情報が含まれています。この E メールエンベロープ情報は、封筒に書かれる情報に似ています。E メールエンベロープのルーティング情報は、通常は E メールヘッダー内のルーティング情報と同じですが、異なる場合もあります。たとえば、ブラインドカーボンコピー (BCC) を送信した場合、エンベロープから取得される実際の受取人アドレスは、ヘッダーから取得されて受取人の E メールクライアントに表示される「To」アドレスと同じではありません。

E メールのシンプルな例を次に示します。ヘッダーの後には空の行が続き、その後に E メールの本文が続きます。エンベロープは E メール自体には含まれず、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

以下のセクションでは、E メールヘッダーと本文について説明し、Amazon SES を使用するときに提供する必要のある情報を示します。

E メールヘッダー

E メールメッセージごとに 1 個のヘッダーがあります。ヘッダーの各行にはフィールドが含まれ、その後にコロン、その後にフィールド本文が続きます。メールクライアントでメールを読むときに、通常、E メールクライアントには次のヘッダーフィールドの値が表示されます。

  • To — メッセージの受取人の E メールアドレス。

  • CC — メッセージのカーボンコピーの受取人の E メールアドレス。

  • From — E メールの送信元の E メールアドレス。

  • Subject — メッセージトピックの概要。

  • Date — E メールが送信された日時。

これ以外にも、ルーティング情報を提供し、メッセージのコンテンツを説明するヘッダーフィールドが多数あります。そのようなフィールドは、通常、E メールクライアントに表示されません。Amazon SES が受け入れるヘッダーフィールドの完全なリストについては、「付録: ヘッダーフィールド」を参照してください。Amazon SES を使用する場合は、特に「From」、「Reply-To」、および「Return-Path」ヘッダーフィールドの違いを理解する必要があります。前述のように、「From」アドレスはメッセージ送信者の E メールアドレスですが、「Reply-To」および「Return-Path」は以下のとおりです。

  • Reply-To — 返信が送信される E メールアドレス。デフォルトでは、返信は元の送信者の E メールアドレスに送信されます。

  • Return-Path — メッセージのバウンスおよび苦情が送信される E メールアドレス。「Return-Path」は、「envelope from」、「envelope sender」、または「MAIL FROM」という名前になることもあります。

    注記

    Amazon SES を使用する場合は、常に「Return-Path」パラメータを設定して、バウンスを常時把握し、バウンスの発生時に適切なアクションを実行できるようにすることをお勧めします。

バウンスされたメッセージと受取人を簡単に照合するために、可変エンベロープリターンパス (VERP) を使用できます。VERP を使用することで、メッセージがバウンスされた場合にどの受取人からバウンスされたかを自動的に把握できるように、受取人ごとに異なる「Return-Path」を設定できます。これにより、バウンスメッセージを開いて解析する必要がなくなります。

E メール本文

E メール本文には、メッセージのテキストが含まれています。本文は、次の形式で送信できます。

  • HTML — 受取人の E メールクライアントで HTML を解釈できる場合は、フォーマットされたテキストおよびハイパーリンクを本文に含めることができます。

  • プレーンテキスト — 受取人の E メールクライアントがテキストベースの場合は、表示不可能な文字を本文に含めることはできません。

  • HTML とプレーンテキスト — 1 つのメッセージで両方の形式を使用して同じコンテンツを送信すると、受取人の E メールクライアントでは機能に応じてどちらの形式で表示するかを決定します。

E メールメッセージを多数の受取人に送信する場合は、HTML とテキストの両方の形式で送信する方法が適しています。HTML 対応 E メールクライアントを使用している受取人は、メッセージに埋め込まれたハイパーリンクをクリックして表示できます。テキストベースの E メールクライアントを使用している受取人については、URL をコピーしてウェブブラウザで表示できるように、URL を記載しておく必要があります。

Amazon SES に提供する必要のある E メール情報

Amazon SES で E メールを送信する場合、指定する必要のある E メール情報は、Amazon SES をどのように呼び出すかによって異なります。最小限の情報を提供した場合は、Amazon SES ですべてのフォーマットが自動的に処理されます。また、添付ファイルの送信などやや高度な作業を実行する場合は、raw メッセージを自分自身で提供できます。以下のセクションでは、Amazon SES API、Amazon SES SMTP インターフェイス、または Amazon SES コンソールを使用して E メールを送信するときに提供する必要のある情報について説明します。

Amazon SES API

Amazon SES API を直接呼び出す場合は、SendEmail または SendRawEmail API を呼び出します。提供する必要がある情報の量は、呼び出す API によって異なります。

  • SendEmail API では、送信元アドレス、宛先アドレス、メッセージの件名、メッセージ本文のみを提供するだけで済みます。必要に応じて、「Reply-To」アドレスを指定できます。この API を呼び出すと、Amazon SES では、E メールクライアントソフトウェアによる表示に最適化された、適切にフォーマット済みのマルチパート多目的インターネットメール拡張(MIME)メールメッセージが自動的にアセンブルされます。詳細については、「Amazon SES API を使用してフォーマット済み E メールを送信する」を参照してください。

  • SendRawEmail API には、ヘッダー、MIME パーツ、およびコンテンツの種類を指定し、独自の raw E メールメッセージをフォーマットして送信できる柔軟性があります。SendRawEmail は、通常は上級ユーザーに利用されています。メッセージの本文とすべてのヘッダーフィールドは、Internet Message Format 仕様(RFC 5322)に準拠した形式で入力する必要があります。詳細については、「Amazon SES API を使用して raw Eメールを送信する」を参照してください。

AWS SDK を使用して Amazon SES API を呼び出す場合は、対応する関数(たとえば、Java の場合は SendEmailSendRawEmail)に上記の情報を指定します。

Amazon SES API を使用した E メール送信の詳細については、「Amazon SES API を使用して E メールを送信する」を参照してください。

Amazon SES SMTP インターフェイス

SMTP インターフェイスで Amazon SES にアクセスする場合、SMTP クライアントアプリケーションでメッセージがアセンブルされるため、提供する必要のある情報は使用するアプリケーションによって異なります。少なくとも、クライアントとサーバー間の SMTP 交換には、送信元アドレス、宛先アドレス、およびメッセージデータが必要です。SMTP インターフェイスを使用していて、フィードバック転送が有効になっている場合、バウンス、苦情、配信通知は "MAIL FROM" アドレスに送信されます。指定した "Reply-To" アドレスはいずれも使用されません。

Amazon SES SMTP インターフェイスを使用した E メール送信の詳細については、「Amazon SES SMTP インターフェイスを使用して E メールを送信する」を参照してください。

Amazon SES コンソール

Amazon SES コンソールを使用してメールを送信する場合、提供する必要のある情報の量は、フォーマットされたメールまたは raw Eメールのどちらを送信するかによって異なります。

  • フォーマットされた E メールを送信する場合、送信元アドレス、宛先アドレス、メッセージの件名、およびメッセージ本文を指定する必要があります。Amazon SES では、E メールクライアントソフトウェアでの表示に最適化された、適切にフォーマットされたマルチパート MIME メールメッセージを自動的にアセンブルします。また、Reply-To および Return-Path フィールドを指定することもできます。

  • raw E メールを送信する場合、送信元アドレス、宛先アドレス、およびメッセージコンテンツを指定します。このコンテンツには、Internet Message Format 仕様 (RFC 5322) に準拠した、メッセージ本文およびすべてのヘッダーフィールドを含める必要があります。