簡體   English   中英

如何使用AWS SES和Lambda解決發送電子郵件的問題?

[英]How to fix sending emails with AWS SES and Lambda?

我正在AWS上設置一個簡單的NodeJS Lambda函數來發送電子郵件。

當我在本地運行時,下面的代碼正在工作。 我已收到來自AWS的所有憑據,已驗證發件人和收件人電子郵件,並為我的Lamba授予了對SES的所有權限

const aws = require("aws-sdk");
const config = require('../config')

aws.config.update({
  accessKeyId: config.mailUser,
  secretAccessKey: config.mailPassword,
  region:'us-east-1'
});

const ses = new aws.SES({apiVersion: '2010-12-01'});

const sendEmail = async (mailOptions) => {
  const {
    from,
    to,
    subject,
    html
  } = mailOptions
  console.log('foo')
  ses.sendEmail({
    Source: from,
    Destination: {
      ToAddresses: [to]
    },
    Message: {
      Subject: {
        Data: subject,
        Charset: 'UTF-8'
      },
      Body: {
        Html: {
          Data: html,
          Charset: 'UTF-8'
        }
      }
    }
  }, 
  (err, data) => {
    console.log('baz')
    if (err) {
      console.error(err);
    } else {
      console.log('Email sent:');
      console.log(data);
    }
  });
};
console.log('bar')
module.exports = { 
  sendEmail 
};

似乎ses.sendEmail()永遠不會在該函數部署時觸發-我在CloudWatch日志中獲取了foobar但從沒有baz 同樣,如果在本地運行,則一切運行會很平穩。
我想念的是什么?

https://www.reddit.com/r/aws/comments/bf2iss/lambda_function_not_able_to_send_email_using_ses/elb8vzr/

這是一個很好的解釋-顯然,您需要將ses.sendMail調用包裝在一個與AWS Lambda一起使用的承諾中。

所有功勞歸於https://www.reddit.com/user/jsdfkljdsafdsu980p/https://www.reddit.com/user/Enoxice/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM