【问题标题】:Attaching PDF file to email sent with AWS SES将 PDF 文件附加到使用 AWS SES 发送的电子邮件
【发布时间】:2018-06-22 11:54:57
【问题描述】:

我想使用来自 nodejs 服务器的 AWS 开发工具包发送电子邮件并附加一个 pdf 文件。 考虑将文件上传到 S3 并通过电子邮件发送链接,但后来我无法公开存储桶,所以这个选项不可用。现在我有了 EC2 实例上的所有数据,如何将可下载的 PDF 附加到我想使用 SES 发送的原始(模板化但不一定是)电子邮件?

搜索了 AWS 文档中的所有内容,但一无所获。我认为这并不罕见,因此任何见解都会有所帮助。

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

【问题讨论】:

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


    【解决方案1】:

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

    我的建议可能满足您的要求,即选择一个仅创建电子邮件并向您返回字符串的库。然后,您的私有代码可以管理凭据和对 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

    【讨论】:

    • 感谢您的回复!当我创建一个 .txt 附件时,我实际上使用了这个示例和这个 API 方法,正如我所写的,它工作得很好。查看第三方模块如何包装 PDF 文件的想法是个好主意。此外,官方文档在 Python、Ruby 和 Java 中有一个示例,说明如何附加带有路径的文件而不是构建文件。没有在 javascript 中找到任何东西,所以在这里寻找它......
    猜你喜欢
    • 1970-01-01
    • 2022-11-25
    • 1970-01-01
    • 2017-09-28
    • 2015-03-29
    • 2011-08-07
    • 2020-10-20
    • 2017-11-11
    • 1970-01-01
    相关资源
    最近更新 更多