【问题标题】:AWS SES send email lambda not sending every timeAWS SES 发送电子邮件 lambda 不是每次都发送
【发布时间】:2019-08-15 08:42:00
【问题描述】:

我想使用来自 lambda 的 aws 的 ses 发送电子邮件。问题是电子邮件仅使用相同的代码发送了几次。我们不会收到错误。

代码如下:

const AWS = require('aws-sdk');
var ses = new AWS.SES();

exports.handler = async (event, context, callback) => {
  context.callbackWaitsForEmptyEventLoop = false;

    await new Promise((resolve, reject) => {

      var params = {
        Destination: {
            ToAddresses: [myEmail]
        },
        Message: {
            Body: {
                Text: { Data: "Test"

                }

            },

            Subject: { Data: "Test Email"

            }
        },
        Source: "sourceMail"
    };

    ses.sendEmail(params, function (err, data) {

        if (err) {
            console.log(err);
            context.fail(err);
        } else {
            console.log(data);
            context.succeed(event);
        }
     callback(null, {err: err, data: data});
    });

    });
}

【问题讨论】:

    标签: amazon-web-services aws-lambda sendmail amazon-ses


    【解决方案1】:

    我会小心使用callbackWaitsForEmptyEventLoop,因为它会导致意外结果 (If this is false, any outstanding events continue to run during the next invocation.)。

    你能试试这个简化版吗:

    const AWS = require('aws-sdk');
    var ses = new AWS.SES();
    
    exports.handler = async (event, context, callback) => {
      const params = {
        Destination: {
          ToAddresses: [myEmail],
        },
        Message: {
          Body: {
            Text: { Data: 'Test' },
          },
    
          Subject: { Data: 'Test Email' },
        },
        Source: 'sourceMail',
      };
    
      await ses.sendEmail(params).promise();
    
      return event;
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-17
      • 1970-01-01
      • 2020-11-25
      • 2022-05-23
      • 2019-12-07
      • 2015-12-13
      • 2016-12-25
      • 2018-03-31
      相关资源
      最近更新 更多