【问题标题】:How to send an email with nodemailer on AWS Lambda如何在 AWS Lambda 上使用 nodemailer 发送电子邮件
【发布时间】:2017-10-05 04:10:17
【问题描述】:

我在我的 AWS Lambda 函数中调用以下代码(使用实际的电子邮件地址和密码)。不幸的是,我无法查看日志(我的帐户目前没有权限)。我必须设置任何特定权限才能从 lambda 函数发送电子邮件吗?还是有另一种/更好的发送和电子邮件方式?

var transporter = nodemailer.createTransport({
    service: 'gmail',
    auth: {
      user: 'source@gmail.com',
      pass: 'paswword'
    }
  });

  var mailOptions = {
    from: 'source@gmail.com',
    to: 'destination@gmail.com',
    subject: 'Sending Email using Node.js',
    text: 'That was easy!'
  };

  transporter.sendMail(mailOptions, function(error, info){
    if (error) {
      console.log(error);
    } else {
      console.log('Email sent: ' + info.response);
    }
  });

【问题讨论】:

    标签: node.js amazon-web-services email lambda


    【解决方案1】:

    它在本地工作吗?我会从那开始。您的方法可能不起作用,因为 https://www.google.com/settings/security/lesssecureapps 功能已禁用。

    假设您使用的是 HTTP 集成,如果您看不到日志,我将创建一个数组,而不是调用 console.log,而是将每个日志附加到该数组。在函数结束时,我会简单地回复包含该日志的200

    您也可以考虑使用https://aws.amazon.com/ses/。这是一种基于云的电子邮件发送服务。它适用于 AWS Lambda。为了让它工作,您需要添加ses:SendEmail 权限并通过验证过程。

    【讨论】:

    • 感谢您的快速回复。在深入研究 Amazon SES 之前,它是否允许我通过方法调用从我的 Lambda 函数发送电子邮件?
    • 是的,这是一个如何完成的示例:github.com/netguru/aws-iam-manager/blob/master/src/ses.js#L118。它也在 AWS Lambda 环境中。
    • 另外,请记住,使用 AWS SES 可能会产生额外费用。 aws.amazon.com/ses/pricing
    • 太好了,我一定会看看 AWS SES,感谢您的建议
    猜你喜欢
    • 2015-05-19
    • 1970-01-01
    • 2021-12-28
    • 2023-03-27
    • 2022-01-18
    • 1970-01-01
    相关资源
    最近更新 更多