html5 发送邮件-使用 Amazon SES API 发送原始电子邮件

2023-10-01 0 8,060 百度已收录

使用 Amazon SES API 发送原始电子邮件

您可以使用 Amazon SES SendRawEmail 操作向发件人发送高度自定义的电子邮件

本部分包含使用 Amazon SES API 创建和发送原始电子邮件的步骤。

关于电子邮件标头数组

简单邮件传输协议(SMTP)通过定义电子邮件信封及其一些参数来指定如何发送电子邮件,但它本身与电子邮件的内容无关。 相反,Internet 邮件格式 (RFC 5322) 定义了如何创建电子邮件。

根据互联网邮件格式规范,每封电子邮件都包含标题和正文。 标头包含电子邮件元数据,正文包含电子邮件本身。 有关电子邮件标头和正文的更多信息,请参阅 Amazon SES 中的电子邮件格式。

使用 MIME

html5 发送邮件-使用 Amazon SES API 发送原始电子邮件

SMTP 协议最初设计用于发送仅包含 7 位 ASCII 字符的电子邮件。 此规范使得 SMTP 不足以处理非 ASCII 文本编码(例如 Unicode)、二进制内容或附件。 开发多用途 Internet 邮件扩展 (MIME) 标准是为了支持使用 SMTP 发送许多其他类型的内容。

MIME 标准的工作原理是将电子邮件正文分成多个片段,然后指定如何处理每个片段。 例如,电子邮件正文的一个片段可以是纯文本,而另一片段可以是 HTML。 此外html5 发送邮件,MIME 允许一封电子邮件包含一个或多个附件。 电子邮件发件人可以在电子邮件客户端中查看附件,也可以保存附件。

消息标题和内容由空行分隔。 电子邮件的每个段都由边界(指示每个段的开头和结尾的字符串)分隔。

以下示例包含一封多部分电子邮件,其中包含文本、HTML 部分和附件。 附件应直接放置在下方,并且通常采用 Base64 编码,如此例中所示。

From: "Sender Name" 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

Hello!

Please see the attached file for a list of customers to contact.

--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/alternative 内容类型。 此内容类型意味着每个片段都包含相同内容的替代版本(在本例中为文本版本和 HTML 版本)。 如果发件人的电子邮件客户端可以显示 HTML 内容,则会显示电子邮件正文的 HTML 版本。 如果发件人的电子邮件客户端无法显示 HTML 内容,它将显示电子邮件正文的纯文本版本。

这两个版本的电子邮件还将包含一个附件(在本例中是一个包含一些客户名称的短文本文件)。

当您将一个 MIME 段嵌套在另一段中时(如此例所示),嵌套段必须使用与父段中的边界参数不同的边界参数。 这些边界应该是唯一的字符串。 要定义 MIME 段之间的边界,请键入两个连字符 (--),后跟边界字符串。 在 MIME 段的末尾,在边界字符串的开头和结尾处放置两个连字符。

MIME编码

为了保持与旧系统的兼容性,Amazon SES 遵循 RFC 2821 中定义的 SMTP 7 位 ASCII 限制。如果您想要发送包含非 ASCII 字符的内容html5 发送邮件,则必须将字符编码为使用 7 位 ASCII 字符的格式。

电子邮件地址

电子邮件地址字符串必须是 7 位 ASCII 字符。 如果您希望向地址域部分包含 Unicode 字符的电子邮件地址发送短信,则必须使用 Punycode 对域进行编码。 Punycode 不允许出现在电子邮件地址的本地部分(@ 符号后面的部分)中,也不允许出现在“友好发件人”名称中。 如果您想在友好发件人名称中使用 Unicode 字符,则必须使用 MIME 编码字语法对友好发件人名称进行编码,如使用 Amazon SES API 发送原始电子邮件中所述。 有关 Punycode 的更多信息,请参阅 RFC 3492。

注意

此规则仅适用于您在短信信封中指定的电子邮件地址,不适用于电子邮件焦点。 使用 SendRawEmail API 时,您在 Source 和 Destinations 参数中指定的地址分别定义信封发件人和发件人。

电子邮件标头

要对电子邮件 Contax 进行编码,请使用 MIME 编码字语法。 MIME 编码字语法使用以下格式:

=?charset?encoding?encoded-text?=

编码的值可以是Q或B。如果编码的值为Q,则encoded-text的值必须使用Q编码。 如果编码值为B,则encoded-text的值必须是base64编码的。

例如,如果您想使用字符串“Яктипоживаш?” 在电子邮件的主题行中,您可以使用以下任何编码:

有关 Q 编码的更多信息,请参阅 RFC 2047。有关 base64 编码的更多信息,请参阅 RFC 2045。

留言内容

要对电子邮件正文进行编码,您可以使用quoted-printable 编码或b​​ase64 编码。 然后,使用 Content-Transfer-Encoding 标头来指示您正在使用的编码方案。

例如,假设电子邮件正文包含以下文本:

- | @

如果您选择使用 base64 编码对此文本进行编码,请首先指定以下 Contax:

Content-Transfer-Encoding: base64

然后,在电子邮件正文中包含 base64 编码的文本:

4KWn4KWv4KWt4KWoIOCkruClhyDgpLDgpYcg4KSf4KWJ4KSu4KSy4KS/4KSC4KS44KSoIOCkqOCl hyDgpKrgpLngpLLgpL4g4KSILeCkruClh+CksiDgpLjgpILgpKbgpYfgpLYg4KSt4KWH4KSc4KS+ IHwg4KSw4KWHIOCkn+ClieCkruCksuCkv+CkguCkuOCkqCDgpKjgpYcg4KS54KWAIOCkuOCksOCl jeCkteCkquCljeCksOCkpeCkriBAIOCkmuCkv+CkqOCljeCkuSDgpJXgpL4g4KSa4KSv4KSoIOCk leCkv+Ckr+CkviDgpJTgpLAg4KSH4KSo4KWN4KS54KWAIOCkleCliyDgpIjgpK7gpYfgpLIg4KSV 4KS+IOCkhuCkteCkv+Ckt+CljeCkleCkvuCksOCklSDgpK7gpL7gpKjgpL4g4KSc4KS+4KSk4KS+ IOCkueCliAo=

注意

在某些情况下,您可以在使用 Amazon SES 发送的电子邮件中使用 8 位 Content-Transfer-Encoding。 但是,如果 Amazon SES 必须对电子邮件进行任何修改(例如,当您使用打开和单击跟踪时),则 8 位编码内容在到达发件人的收件箱时可能难以正确显示。 因此,您应该始终对非 7 位 ASCII 的内容进行编码。

文件附件

要将文件附加到电子邮件,您必须使用 base64 编码对附件进行编码。 附件一般放置在专用的 MIME 消息部分中,包括以下 Contax:

内容处置 – 指定发件人的电子邮件客户端应如何处理内容。 对于附件,该值为 Content-Disposition:attachment。

内容传输编码 – 用于对附件进行编码的方案。 对于文件附件,该值几乎总是 base64。

编码附件 - 您必须对实际附件进行编码并将其包含在附件标题下方的正文中。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 html5 html5 发送邮件-使用 Amazon SES API 发送原始电子邮件 https://www.wkzy.net/game/198012.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务