简体   繁体   中英

Sending mail via aws ses with attachment in node.js

有没有人有一些示例说明如何使用 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM