根据给定文档“ https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#sendTemplatedEmail-property”。它使用的是“ sendTemplatedEmail ” API,我们可以使用模板发送电子邮件。成功了但是我不知道如何添加附件。
在“ sendTemplatedEmail ” API文档的第4点,它说“消息的总大小(包括附件)必须小于10 MB”。如何在此sendTemplatedEmail API的此处添加附件?
还有一个名为“ sendRawEmail ”的API。但这不符合我的要求。我需要使用模板并附加文档。有人知道该怎么做吗??
答案 0 :(得分:1)
看看SendRawEmail示例:
/* The following example sends an email with an attachment: */
var params = {
Destinations: [],
FromArn: "",
RawMessage: {
Data: <Binary String>
},
ReturnPathArn: "",
Source: "",
SourceArn: ""
};
ses.sendRawEmail(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
/*
data = {
MessageId: "EXAMPLEf3f73d99b-c63fb06f-d263-41f8-a0fb-d0dc67d56c07-000000"
}
*/
});
参考:https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html
重要提示:您需要了解MIME类型标准以包括附件。看看this article。
MIME由Internet工程任务组于1992年定义。 (IETF)。 MIME邮件的显着特征是 MIME标头的存在。只要您的邮件收件人也 具有兼容MIME的电子邮件软件(以及大多数电子邮件软件 是),则可以自动交换包含附件的文件。
编辑:This article解释了如何在身体中包括附件。
MIME通过允许以下内容来完成文件附件的错觉 邮件正文分为不同的部分,每个部分都有自己的 标头。内容类型“多部分/混合”表示 正文分为以“-” +唯一字符串分隔的块 保证在邮件的其他任何地方都找不到。如果你说 您的边界字符串是“ MyBoundaryString”,则所有出现的事件 该字符串的将会被视为边界。所以最好不要在 用户键入的消息,否则将无法正确解码。
Wikipedia也给出了一个示例:
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=frontier
This is a message with multiple parts in MIME format.
--frontier
Content-Type: text/plain
This is the body of the message.
--frontier
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
PGh0bWw+CiAgPGhlYWQ+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPHA+VGhpcyBpcyB0aGUg
Ym9keSBvZiB0aGUgbWVzc2FnZS48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg==
--frontier--
我认为您熟悉Base64。