通过 aws ses 在 node.js 中发送带有附件的邮件
Posted
技术标签:
【中文标题】通过 aws ses 在 node.js 中发送带有附件的邮件【英文标题】:Sending mail via aws ses with attachment in node.js 【发布时间】:2014-05-27 09:27:46 【问题描述】:有没有人举例说明如何使用 aws ses 在node.js
中发送带有附件的电子邮件?
【问题讨论】:
【参考方案1】:如果你想避免痛苦,你必须使用包裹在 Nodemailer 中的 SES。直接使用AWS SDK,你不能用ses.sendEmail
发送附件,你必须使用ses.sendRawEmail
,这很糟糕,因为你必须用标题和其他东西形成原始电子邮件,即使在我这样做之后那个,我在发送重复的电子邮件时遇到了一个奇怪的错误......
npm install nodemailer
const AWS = require('aws-sdk');
const nodemailer = require("nodemailer");
async function scheduledEmail ()
let usefulData = 'some,stuff,to,send';
let transporter = nodemailer.createTransport(
SES: new AWS.SES( region: 'us-east-1', apiVersion: "2010-12-01" )
);
let text = 'Attached is a CSV of some stuff.';
// send mail with defined transport object
let info = await transporter.sendMail(
from: '"Some name" <someone@example.com>',
to: "someone_else@example.com",
subject: "Hello", // Subject line
text: text, // plaintext version
html: '<div>' + text + '</div>', // html version
attachments: [
filename: "usefulData.csv",
content: usefulData
]
);
console.log("Message sent: %s", info.messageId);
// Message sent: <b658f8ca-6296-ccf4-8306-87d57a0b4321@example.com>
return info; // or something
还有很多其他设置附件的示例: https://nodemailer.com/message/attachments/
如果您仍处于 SES 沙盒模式,则必须验证往返地址。在 SES Sending 统计页面申请退出沙盒模式。
【讨论】:
A-Shar***i:内容可以是很多东西。有关信息,请参阅 nodemailer 文档:nodemailer.com/message/attachments【参考方案2】:有一个很棒的邮件库,名为ˇNodemailerˇ,它还支持 Amazon SES。这是一个如何发送带有附件https://github.com/nodemailer/nodemailer/blob/master/examples/ses.js的电子邮件的小例子
但请注意,当您的电子邮件发送失败时,亚马逊会出现奇怪的错误。
【讨论】:
现在Nodemailer 有一个单独的SES transport module。以上是关于通过 aws ses 在 node.js 中发送带有附件的邮件的主要内容,如果未能解决你的问题,请参考以下文章
使用来自 node.js 的 AWS SES 在邮件中上传 .jpg 图像附件
如何使用 node.js 动态设置 aws ses TemplateData?