AWS SES发送电子邮件lambda每次都不发送 [英] AWS SES send email lambda not sending every time

查看:190
本文介绍了AWS SES发送电子邮件lambda每次都不发送的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用来自lambda的aws的ses发送电子邮件.问题在于,该电子邮件仅使用相同的代码发送几次.我们没有错误.

I want to send emails using the ses from aws from lambda. The problem is that the email is only sent some times using the same code. We don't get errors.

代码如下:

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});
    });

    });
}

推荐答案

使用callbackWaitsForEmptyEventLoop会很小心,因为它可能导致意外结果(

I would be careful with using callbackWaitsForEmptyEventLoop as it can lead to unexpected results (If this is false, any outstanding events continue to run during the next invocation.).

您可以尝试使用此简化版本吗?

Can you try using this simplified version:

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;
};

这篇关于AWS SES发送电子邮件lambda每次都不发送的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆