Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Senden von Roh-E-Mails mit der Amazon SES API v2
Sie können den Amazon SES API SendEmail
v2-Vorgang mit dem angegebenen Inhaltstyp verwendenraw
, um benutzerdefinierte Nachrichten im unformatierten E-Mail-Format an Ihre Empfänger zu senden.
Über E-Mail-Header-Felder
Simple Mail Transfer Protocol (SMTP) gibt an, wie E-Mail-Nachrichten gesendet werden sollen, indem der E-Mail-Umschlag und einigen seiner Parameter definiert werden. Es geht dabei aber nicht um den Inhalt der Nachricht. Stattdessen definiert das Internet-Nachrichtenformat (RFC 5322
Mit der Spezifikation für das Internet-Nachrichtenformat besteht jede E-Mail-Nachricht aus einem Header und einem Text. Der Header besteht aus Metadaten der Nachrichten und der Körper enthält die Nachricht selbst. Weitere Informationen über E-Mail-Header und -Texte finden Sie unter E-Mail-Format und Amazon SES.
Verwenden von MIME
Das SMTP-Protokoll war ursprünglich zum Senden von E-Mail-Nachrichten konzipiert, die nur 7-Bit-ASCII-Zeichen enthielten. Aufgrund dieser Spezifikation ist SMTP für Nicht-ASCII-Textcodierungen (z. B. Unicode), binäre Inhalte oder Anlagen unzureichend. Der Multipurpose Internet Mail Extensions-Standard (MIME) wurde entwickelt, um den Versand vieler anderer Arten von Inhalten über SMTP zu ermöglichen.
Der MIME-Standard funktioniert, indem er den Nachrichtentext in mehrere Teile unterteilt und dann angibt, wie mit den einzelnen Teilen zu verfahren ist. Beispielsweise kann ein Teil eines E-Mail-Nachrichtentext Klartext sein, während ein anderer HTML sein kann. Darüber hinaus lässt MIME zu, dass E-Mail-Nachrichten eine oder mehrere Anlagen enthalten. Die Empfänger der Nachricht können die Anlagen innerhalb ihrer E-Mail-Clients anzeigen oder die Anlagen speichern.
Der E-Mail-Header und die Inhalte werden durch eine Leerzeile getrennt. Jeder Teil der E-Mail wird durch einen Rahmen getrennt, eine Zeichenfolge, die den Anfang und das Ende jedes Teils markiert.
Die mehrteilige Nachricht im folgenden Beispiel enthält einen Text- und einen HTML-Teil sowie einen Anhang. Der Anhang sollte, wie in diesem Beispiel gezeigt, direkt unter den Anhangsüberschriften platziert werden und wird meistens in base64
codiert.
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--
Der Inhaltstyp für die Nachricht ist multipart/mixed
. Dieser gibt an, dass die Nachricht viele Teile hat (in diesem Beispiel einen Text und eine Anlage), und der empfangende Client muss jedes Teil getrennt handhaben.
Verschachtelt in den Körperabschnitt ist eine zweite Komponente, die den multipart/alternative
-Inhaltstyp verwendet. Dieser Inhaltstyp gibt an, dass jedes Teil alternative Versionen desselben Inhalts enthält (in diesem Fall eine Textversion und eine HTML-Version). Wenn der E-Mail-Client des Empfängers HTML-Inhalte anzeigen kann, dann zeigt er die HTML-Version des Textkörpers an. Wenn der E-Mail-Client des Empfängers keine HTML-Inhalte anzeigen kann, dann zeigt er die Klartextversion des Textkörpers an.
Beide Versionen der Nachricht enthalten außerdem eine Anlage (in diesem Fall eine kurze Textdatei mit einigen Kundennamen).
Wenn Sie einen MIME-Teil in einen anderen Teil verschachteln, wie in diesem Beispiel, muss das verschachtelte Teil einen boundary
-Parameter verwenden, der sich vom boundary
-Parameter im übergeordneten Teil unterscheidet. Diese Grenzen sollten eindeutige Zeichenfolgen sein. Zum Definieren einer Begrenzung zwischen MIME-Teilen geben Sie zwei Bindestriche (-) gefolgt von der Begrenzungszeichenfolge ein. Am Ende eines MIME-Teils platzieren Sie zwei Bindestriche am Anfang und am Ende der Begrenzungszeichenfolge.
Anmerkung
Eine Nachricht kann nicht mehr als 500 MIME-Teile umfassen.
MIME-Codierung
Um die Kompatibilität mit älteren Systemen zu wahren, beachtet Amazon SES die 7-Bit-ASCII-Beschränkung der SMTP-Definition in RFC 2821
E-Mail-Adressen
Die E-Mail-Adresse muss eine 7-Bit-ASCII-Zeichenfolge sein. Wenn Sie E-Mails an oder von Adressen mit Unicode-Zeichen im Domänenteil der Adresse senden möchten, müssen Sie die Domäne über Punycode codieren. Punycode ist weder im lokalen Teil der E-Mail-Adresse (das ist der Teil vor dem @-Zeichen) noch im "friendly from"-Namen zulässig. Wenn Sie Unicode-Zeichen im Namen des Absenders verwenden möchten, müssen Sie den Namen des Absendernamens mit MIME-Syntax codieren, wie in diesem Abschnitt beschrieben. Weitere Informationen zu Punycode finden Sie unter RFC 3492
Anmerkung
Diese Regel gilt nur für E-Mail-Adressen, die Sie im Umschlag der Nachricht angeben, nicht für die Nachrichten-Header. Wenn Sie den Amazon SES API SendEmail
v2-Vorgang verwenden, definieren die Adressen, die Sie in den Destinations
Parametern Source
und angeben, den Absender bzw. die Empfänger des Umschlags.
E-Mail-Header
Um eine Nachrichtenkopfzeile, oder einen Header, zu codieren, verwenden Sie MIME-codierte Wortsyntax. MIME-codierter Wortsyntax verwendet das folgende Format:
=?
charset
?encoding
?encoded-text
?=
Der Wert von
kann encoding
Q
oder B
sein. Wenn der Wert der Codierung Q
ist, dann muss der Wert von
Q-Codierung verwenden. Wenn der Wert der Codierung encoded-text
B
ist, dann muss der Wert von
base64-Codierung verwenden.encoded-text
Zum Beispiel, wenn Sie die Zeichenfolge „Як ти поживаєш?“ verwenden möchten In der Betreffzeile einer E-Mail können Sie eine der folgenden Codierungen verwenden:
-
Q-Codierung
=?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-Codierung
=?utf-8?B?0K/QuiDRgtC4INC/0L7QttC40LLQsNGU0Yg/?=
Weitere Informationen zur Q_Codierung finden Sie unter RFC 2047
Nachrichtentext
Um den Nachrichtentext zu codieren, können Sie Quoted-Printable-Codierung oder base64-Codierung verwenden. Verwenden Sie danach den Content-Transfer-Encoding
-Header, um anzugeben, welche Codierungsschema Sie verwendet haben.
Angenommen, der Text Ihrer Nachricht enthält den folgenden Text:
१९७२ मे रे टॉमलिंसन ने पहला ई-मेल संदेश भेजा | रे टॉमलिंसन ने ही सर्वप्रथम @ चिन्ह का चयन किया और इन्ही को ईमेल का आविष्कारक माना जाता है
Wenn Sie diesen Text mit base64-Codierung codieren, geben Sie zuerst den folgenden Header ein:
Content-Transfer-Encoding: base64
Schließen Sie dann im Körperabschnitt der E-Mail den base64-codierten Text ein:
4KWn4KWv4KWt4KWoIOCkruClhyDgpLDgpYcg4KSf4KWJ4KSu4KSy4KS/4KSC4KS44KSoIOCkqOCl hyDgpKrgpLngpLLgpL4g4KSILeCkruClh+CksiDgpLjgpILgpKbgpYfgpLYg4KSt4KWH4KSc4KS+ IHwg4KSw4KWHIOCkn+ClieCkruCksuCkv+CkguCkuOCkqCDgpKjgpYcg4KS54KWAIOCkuOCksOCl jeCkteCkquCljeCksOCkpeCkriBAIOCkmuCkv+CkqOCljeCkuSDgpJXgpL4g4KSa4KSv4KSoIOCk leCkv+Ckr+CkviDgpJTgpLAg4KSH4KSo4KWN4KS54KWAIOCkleCliyDgpIjgpK7gpYfgpLIg4KSV 4KS+IOCkhuCkteCkv+Ckt+CljeCkleCkvuCksOCklSDgpK7gpL7gpKjgpL4g4KSc4KS+4KSk4KS+ IOCkueCliAo=
Anmerkung
In einigen Fällen können Sie in mit Amazon SES gesendeten Nachrichten das 8-Bit Content-Transfer-Encoding
verwenden. Wenn Amazon SES jedoch Änderungen an Ihren Nachrichten vornehmen muss (wenn Sie z. B. Öffnungs- und Klicknachverfolgung verwenden), wird der 8-Bit-codierte Inhalt möglicherweise nicht richtig angezeigt, wenn er im Postfach der Empfänger eingeht. Aus diesem Grund sollten Sie Inhalte, die sich nicht im 7-Bit-ASCII-Format befinden, immer codieren.
Dateianhänge
Um eine Datei an eine E-Mail anfügen zu können, müssen Sie die Anlage mit base64-Codierung codieren. Anlagen werden in der Regel in dedizierten MIME-Nachrichtenteilen platziert. Dazu gehören die folgenden Header:
-
Inhaltstyp – der Dateityp der Anlage. Hier sind einige Beispiele für häufige MIME-Inhaltstyp-Deklarationen:
-
Reine Textdatei –
Content-Type: text/plain; name="sample.txt"
-
Microsoft Word-Dokument –
Content-Type: application/msword; name="document.docx"
-
JPG-Bild –
Content-Type: image/jpeg; name="photo.jpeg"
-
-
Inhaltsanordnung – gibt an, wie der E-Mail-Client des Empfängers die Inhalte anordnen soll. Für Anlagen ist dieser Wert
Content-Disposition: attachment
. -
Inhaltsübertragungscodierung – das Schema, das zum Codieren der Anlage verwendet wurde. Für Dateianlagen ist dieser Wert fast immer
base64
. -
Der codierte Anhang – Sie müssen den eigentlichen Anhang, wie im Beispiel gezeigt, codieren und ihn in den Text unter den Anhangsüberschriften einfügen.
Amazon SES akzeptiert die gängigsten Dateitypen. Eine Liste der Dateitypen, die Amazon SES nicht akzeptiert, finden Sie unter Amazon SES nicht unterstützte Anhangstypen.
Senden von Roh-E-Mails mit der Amazon SES API v2
Die Amazon SES API v2 bietet die SendEmail
Aktion, mit der Sie eine E-Mail-Nachricht in dem Format verfassen und senden können, das Sie angeben, wenn Sie den Inhaltstyp auf Einfach, Rohformat oder Vorlage festlegen. Eine vollständige Beschreibung finden Sie unter SendEmail
. Im folgenden Beispiel wird der Inhaltstyp für raw
das Senden von Nachrichten im unformatierten E-Mail-Format angegeben.
Anmerkung
Tipps zur Erhöhung der E-Mail-Sendegeschwindigkeit bei mehreren SendEmail
-Aufrufen finden Sie unter Erhöhen des Durchsatzes mit Amazon SES.
Der Nachrichtentext muss eine ordnungsgemäß formatierte Raw-E-Mail-Nachricht mit entsprechenden Header-Feldern und Nachrichtentext-Codierung enthalten. Obwohl es möglich ist, die unformatierte Nachricht manuell in einer Anwendung zu verfassen, ist es wesentlich einfacher, dies mithilfe von vorhandenen E-Mail-Bibliotheken zu tun.