将PDF文件附加到使用AWS SES发送的电子邮件中

时间:2018-01-13 01:21:13

标签: node.js amazon-web-services amazon-ses

我想从nodejs服务器使用AWS SDK发送电子邮件并附加pdf文件。 考虑将文件上传到S3并通过电子邮件发送链接,但是我无法公开该存储桶,因此该选项已经用完。现在我拥有EC2实例上的所有数据,如何将可下载的PDF附加到我想使用SES发送的原始(模板化但不一定是)电子邮件中?

搜索AWS文档中的所有内容,但未发现任何内容。我不认为这种罕见,所以任何见解都会有所帮助。

P.S。我不想使用第三方模块,因为我不想将我的凭据提供给未知模块。

1 个答案:

答案 0 :(得分:0)

由于您的要求不是第三方库,您必须自己编写。这不是太难,但也不容易。

我的建议可能符合您的要求,就是选择一个只创建电子邮件的库并向您返回一个字符串。然后您的私有代码可以管理凭据和对SES的调用。我不知道这样的库,但你可以选择一个开源的node.js包并提取你需要的代码。然后重新发布该部分,以便其他人可以受益,因为你对原作者给予了赞誉。

对于Amazon SES,您需要使用SendRawEmail操作。然后你将不得不手工制作信息的正文。

以下是如何格式化电子邮件的示例:

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--

此链接将进一步解释:

Sending Raw Email