在AWS Lambda函数中通过AWS SES发送电子邮件


v-star*위위
2025-03-12 11:00:32 (16天前)
  1. 我已经创建了一个非常基本的简单函数


AWS
</跨度>

LAMBDA
</跨度>
这将用于接受表单提交。

部分功能是向特定的人发送电子邮件,非常简单。我内心相同

AWS
</跨度>

LAMBDA
</跨度>
并使用

AWS
</跨度>
sdk它没有发送电子邮件。我没有得到任何错误或错误。

下面是我正在使用的代码

AWS
</跨度>

LAMBDA
</跨度>
功能。

有没有人有任何

3 条回复
  1. 0# v-star*위위 | 2019-08-31 10-32



    看来我将context.succeed(事件)放在了错误的代码区域。



    一旦我将它移动到sendEmail回调中,一切正常。




    1. var aws = require(‘aws-sdk’);
      var ses = new aws.SES({
      accessKeyId: myAccessKey’,
      secretAccesskey: mySecretKey’,
      region: eu-west-1
      });

    2. exports.handler = function(event, context) {
      console.log(“Incoming: “, event);
      var output = querystring.parse(event);

    3. var eParams = {
      Destination: {
      ToAddresses: [“toAddress@email.com”]
      },
      Message: {
      Body: {
      Text: {
      Data: output.Key1
      }
      },
      Subject: {
      Data: Ses Test Email
      }
      },
      Source: mysource@source.com
      };

    4. console.log(‘===SENDING EMAIL===’);
      var email = ses.sendEmail(eParams, function(err, data){
      if(err) {
      console.log(err);
      context.fail(err);
      };
      else {
      console.log(“===EMAIL SENT===”);
      console.log(“EMAIL CODE END”);
      console.log(‘EMAIL: ‘, email);
      console.log(data);
      context.succeed(event);
      }
      });};

    5. </code>

  2. 1# 敢嫁就敢娶 | 2019-08-31 10-32



    这是因为当函数退出并冻结任何异步进程(例如您的电子邮件)时,Lambda会冻结容器。 Node尤其如此。请参阅Lambda编程模型。

    http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html


登录 后才能参与评论