【问题标题】:Sending mail via aws ses with attachment in node.js通过 aws ses 在 node.js 中发送带有附件的邮件
【发布时间】:2014-05-27 09:27:46
【问题描述】:

有没有人举例说明如何使用 aws ses 在node.js 中发送带有附件的电子邮件?

【问题讨论】:

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


    【解决方案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 统计页面申请退出沙盒模式。

    【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    猜你喜欢
    • 2017-09-28
    • 2019-12-07
    • 2018-06-24
    • 1970-01-01
    • 1970-01-01
    • 2022-11-25
    • 2017-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多