有没有人有一些示例说明如何使用 aws ses 在node.js
发送带有附件的电子邮件?
If you want to avoid suffering, you have to use SES wrapped in Nodemailer. Using the AWS SDK directly, you can't send attachments with ses.sendEmail
, you have to use ses.sendRawEmail
, which is awful because you have to form the raw E-mail with headers and what-not, and even after I did that, I had a weird error where duplicate E-mails were being sent...
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
}
There are plenty of examples for other ways to set attachments: https://nodemailer.com/message/attachments/
If you're still in the SES sandbox mode, both the to/from addresses have to be verified. Apply to get out of the sandbox mode on the SES Sending statistics page.
There is a great mailing library called ˇNodemailerˇ it also has support for the Amazon SES. Here is a small example of how to send e-mail with attachment https://github.com/nodemailer/nodemailer/blob/master/examples/ses.js
But be aware that Amazon has strange errors when your email sending fails.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.