翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon v2 を使用した raw E SES API メールの送信
Amazon v2 SendEmail
オペレーションは、 に指定されたコンテンツタイプで使用raw
して、未加工の E SES API メール形式を使用してカスタマイズされたメッセージを受信者に送信できます。
E メールヘッダーフィールドについて
Simple Mail Transfer Protocol (SMTP) は、メールエンベロープとそのパラメータの一部を定義して、E メールメッセージの送信方法を指定しますが、メッセージの内容には関係ありません。代わりに、インターネットメッセージ形式 (RFC 5322
Internet Message Format の仕様に従って、すべてのメッセージ E メールはヘッダーと本文から構成されます。ヘッダーはメッセージのメタデータで構成され、本文にメッセージそのものが含まれます。E メールヘッダーと本文の詳細については、「Amazon SESのE メール形式」を参照してください。
の使用 MIME
このSMTPプロトコルは、もともと 7 ビットASCII文字のみを含む E メールメッセージを送信するように設計されています。この仕様では、非ASCIIテキストエンコーディング (Unicode など)、バイナリコンテンツ、またはアタッチメントにはSMTP不十分です。Multipurpose Internet Mail Extensions 標準 (MIME) は、 を使用して他の多くの種類のコンテンツを送信できるように開発されましたSMTP。
MIME 標準は、メッセージ本文を複数の部分に分割し、各パートで何をするかを指定することで機能します。例えば、E メールメッセージ本文の一部がプレーンテキストで、もう 1 つは である場合がありますHTML。さらに、 MIMEでは、E メールメッセージに 1 つ以上の添付ファイルを含めることができます。メッセージの受取人は、E メールクライアント内から添付ファイルを見たり、保存したりできます。
メッセージヘッダーとコンテンツとは空白行で分離されます。E メールの各パートは、boundary で分離されます。boundary は、各パートの開始と終了を示す文字列です。
次の例のマルチパートメッセージには、テキストとHTMLパート、および添付ファイルが含まれています。添付ファイルは添付ファイルヘッダーのすぐ下に配置する必要があります。ほとんどの場合、この例のように base64
でエンコードされます。
From: "Sender Name" <sender@example.com> To: recipient@example.com Subject: Customer service contact info Content-Type: multipart/mixed; boundary="a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a" --a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a Content-Type: multipart/alternative; boundary="sub_a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a" --sub_a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Please see the attached file for a list of customers to contact. --sub_a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a Content-Type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable <html> <head></head> <body> <h1>Hello!</h1> <p>Please see the attached file for a list of customers to contact.</p> </body> </html> --sub_a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a-- --a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a Content-Type: text/plain; name="customers.txt" Content-Description: customers.txt Content-Disposition: attachment;filename="customers.txt"; creation-date="Sat, 05 Aug 2017 19:35:36 GMT"; Content-Transfer-Encoding: base64 SUQsRmlyc3ROYW1lLExhc3ROYW1lLENvdW50cnkKMzQ4LEpvaG4sU3RpbGVzLENhbmFkYQo5MjM4 OSxKaWUsTGl1LENoaW5hCjczNCxTaGlybGV5LFJvZHJpZ3VleixVbml0ZWQgU3RhdGVzCjI4OTMs QW5heWEsSXllbmdhcixJbmRpYQ== --a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a--
メッセージのコンテンツタイプが multipart/mixed
であることから、メッセージに多数のパートがあり (この例では、本文および添付ファイル)、受信するクライアントは各パートを別々に扱う必要があることがわかります。
本文セクション内に入れ子になっているのは、multipart/alternative
コンテンツタイプを使用する 2 番目のパートです。このコンテンツタイプは、各パートに同じコンテンツの代替バージョン (この場合はテキストバージョンとHTMLバージョン) が含まれていることを示します。受信者の E メールクライアントがHTMLコンテンツを表示できる場合、メッセージ本文HTMLのバージョンが表示されます。受信者の E メールクライアントがHTMLコンテンツを表示できない場合、メッセージ本文のプレーンテキストバージョンが表示されます。
メッセージの両方のバージョンには添付ファイルも含まれます (この場合、一部の顧客名を含むショートテキストファイル)。
この例では、別のMIMEパート内にパートをネストする場合、ネストされたパートは親パートの boundary
パラメータとは異なる boundary
パラメータを使用する必要があります。これらの境界は固有の文字列でなければなりません。MIME パート間の境界を定義するには、2 つのハイフン (--) を入力し、次に境界文字列を入力します。MIME パートの最後に、境界文字列の先頭と末尾の両方に 2 つのハイフンを配置します。
注記
メッセージには 500 個を超えるMIME部分を含めることはできません。
MIME エンコード
古いシステムとの互換性を維持するために、Amazon は RFC2821
E メールアドレス
E メールアドレス文字列は 7 ビット である必要がありますASCII。送信先または送信元の E メールアドレス内で、ドメインの部分に Unicode 文字が含まれる場合は、Punycode を使用してドメインをエンコードする必要があります。Punycode は E メールアドレスのローカル部分 (@ 記号の前の部分) では許可されていません。また、「差出人」名にも許可されていません。「フレンドリ」名で Unicode 文字を使用する場合は、「フレンドリ」名をエンコード語構文を使用してMIMEエンコードする必要がありますAmazon v2 を使用した raw E SES API メールの送信。Punycode の詳細については、RFC「3492
注記
このルールは、メッセージヘッダーではなく、メッセージエンベロープで指定する E メールアドレスにのみ適用されます。Amazon SESAPIv2 SendEmail
オペレーションを使用すると、 Source
パラメータと Destinations
パラメータで指定したアドレスによって、それぞれエンベロープ送信者と受信者が定義されます。
E メールヘッダー
メッセージヘッダーをエンコードするには、MIMEエンコードされた単語構文を使用します。MIME エンコードされた単語構文では、次の形式が使用されます。
=?
charset
?encoding
?encoded-text
?=
の値は encoding
Q
または B
となります。エンコードの値が Q
の場合、値
には Q エンコードを使用する必要があります。エンコードの値が encoded-text
B
の場合、
の値には base64 エンコードを使用する必要があります。encoded-text
たとえば、「Як ти поживаєш?」を使用する場合 E メールの件名に次のエンコードのいずれかを使用することができます。
-
Q エンコード
=?utf-8?Q?=D0=AF=D0=BA_=D1=82=D0=B8_=D0=BF=D0=BE=D0=B6=D0=B8=D0=B2=D0=B0=D1=94=D1=88=3F?=
-
Base64 エンコード
=?utf-8?B?0K/QuiDRgtC4INC/0L7QttC40LLQsNGU0Yg/?=
Q エンコードの詳細については、RFC「2047
メッセージ本文
メッセージの本文をエンコードするには、quoted-printable エンコードまたは base64 エンコードを使用できます。次に、Content-Transfer-Encoding
ヘッダーを使用して、使用するエンコードスキームを指定します。
たとえば、メッセージの本文に次のテキストが含まれているとします。
१९७२ मे रे टॉमलिंसन ने पहला ई-मेल संदेश भेजा | रे टॉमलिंसन ने ही सर्वप्रथम @ चिन्ह का चयन किया और इन्ही को ईमेल का आविष्कारक माना जाता है
base64 エンコードを使用してこのテキストをエンコードする場合、最初に以下のヘッダーを指定します。
Content-Transfer-Encoding: base64
次に、E メールの本文セクションに、base64 でエンコードされたテキストを含めます。
4KWn4KWv4KWt4KWoIOCkruClhyDgpLDgpYcg4KSf4KWJ4KSu4KSy4KS/4KSC4KS44KSoIOCkqOCl hyDgpKrgpLngpLLgpL4g4KSILeCkruClh+CksiDgpLjgpILgpKbgpYfgpLYg4KSt4KWH4KSc4KS+ IHwg4KSw4KWHIOCkn+ClieCkruCksuCkv+CkguCkuOCkqCDgpKjgpYcg4KS54KWAIOCkuOCksOCl jeCkteCkquCljeCksOCkpeCkriBAIOCkmuCkv+CkqOCljeCkuSDgpJXgpL4g4KSa4KSv4KSoIOCk leCkv+Ckr+CkviDgpJTgpLAg4KSH4KSo4KWN4KS54KWAIOCkleCliyDgpIjgpK7gpYfgpLIg4KSV 4KS+IOCkhuCkteCkv+Ckt+CljeCkleCkvuCksOCklSDgpK7gpL7gpKjgpL4g4KSc4KS+4KSk4KS+ IOCkueCliAo=
注記
場合によっては、Amazon を使用して送信するメッセージContent-Transfer-Encoding
で 8 ビットを使用できますSES。ただし、Amazon SESがメッセージに変更を加える必要がある場合 (たとえば、オープンおよびクリック追跡 を使用する場合)、受信者の受信トレイに到着すると、8 ビットエンコードされたコンテンツが正しく表示されないことがあります。このため、7 ビット ではないコンテンツは常にエンコードする必要がありますASCII。
添付ファイル
E メールにファイルをアタッチするには、base64 エンコードを使用して添付ファイルをエンコードする必要があります。アタッチメントは通常、以下のヘッダーを含む専用のMIMEメッセージパートに配置されます。
-
Content-Type – 添付ファイルの種類。以下は、一般的な MIME Content-Type 宣言の例です。
-
プレーンテキストファイル –
Content-Type: text/plain; name="sample.txt"
-
Microsoft Word ドキュメント –
Content-Type: application/msword; name="document.docx"
-
JPG イメージ –
Content-Type: image/jpeg; name="photo.jpeg"
-
-
Content-Disposition – 受取人の E メールクライアントがコンテンツをどのように処理するかを指定します。添付ファイルの場合、この値は
Content-Disposition: attachment
です。 -
Content-Transfer-Encoding – 添付ファイルのエンコードに使用されるスキーム。添付ファイルでは、ほとんどの場合この値は
base64
です。 -
エンコードされた添付ファイル – 例に示すように、実際の添付ファイルをエンコードして、添付ファイルヘッダーの下の本文に含める必要があります。
Amazon は最も一般的なファイルタイプSESを受け入れます。Amazon が受け入れないファイルタイプのリストについては、SES「」を参照してくださいAmazon SES でサポートされていないアタッチメントタイプ。
Amazon v2 を使用した raw E SES API メールの送信
Amazon SESAPIv2 には SendEmail
アクションが用意されています。これにより、コンテンツタイプをシンプル、raw、またはテンプレートのいずれかに設定するときに指定した形式で E メールメッセージを作成して送信できます。詳細については、「」を参照してくださいSendEmail
。次の例では、未加工の E メール形式を使用してメッセージを送信raw
するためのコンテンツタイプを指定します。
注記
SendEmail
に複数の呼び出しを作成する場合の E メール送信速度向上方法については、「Amazon SES のスループットを上げる」を参照してください。
メッセージ本文には、正しくフォーマットされ、適切なヘッダーフィールドとメッセージ本文がエンコードされた raw E メールメッセージを含める必要があります。アプリケーション内で raw メッセージを手動で構成することはできますが、既存のメールライブラリを使用して構成するほうが、はるかに簡単です。