通过 aws ses 在 node.js 中发送带有附件的邮件

use*_*343 5 email email-attachments amazon-web-services node.js amazon-ses

有没有人有一些关于如何node.js使用 aws ses发送带有附件的电子邮件的示例?

Rai*_*nch 7

如果你想避免痛苦,你必须使用包裹在 Nodemailer 中的 SES。直接使用 AWS 开发工具包,你不能用 发送附件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
}
Run Code Online (Sandbox Code Playgroud)

有很多其他设置附件方式的例子:https : //nodemailer.com/message/attachments/

如果您仍处于 SES 沙箱模式,则必须验证两个收件人/发件人地址。在 SES 发送统计信息页面申请退出沙箱模式。


Ris*_*vik 1

有一个很棒的邮件库,名为 \xcb\x87Nodemailer\xcb\x87,它还支持 Amazon SES。这是一个如何发送带有附件的电子邮件的小示例https://github.com/nodemailer/nodemailer/blob/master/examples/ses.js

\n

但请注意,当您的电子邮件发送失败时,亚马逊会出现奇怪的错误。

\n

  • 现在 [Nodemailer](https://github.com/andris9/Nodemailer#use-a-transport-plugin) 有一个单独的 [SES 传输模块](https://github.com/andris9/nodemailer-ses-transport) 。 (2认同)