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

我在AWS Lambda上创建了一个非常基本的简单函数,该函数将用于接受表单提交。

该功能的一部分将是向特定的人发送电子邮件,非常简单。我正在尝试使用AWS

SES来执行此操作。我已经设置了SES服务等,并验证了我希望发送到的帐户并能够发送测试电子邮件。所有作品!!

现在,当我尝试在AWS Lambda中执行相同操作并使用aws sdk时,它不会发送电子邮件。我没有收到任何错误。

以下是我用于AWS Lambda函数的代码。

有没有人有使用lambda和通过ses通过lambda函数发送电子邮件的经验?甚至只使用node.js aws sdk很有可能会有所帮助。

var aws = require('aws-sdk');

var ses = new aws.SES({

accessKeyId: 'myAccessKey',

secretAccesskey: 'mySecretKey',

region: 'eu-west-1'

});

exports.handler = function(event, context) {

console.log("Incoming: ", event);

var output = querystring.parse(event);

var eParams = {

Destination: {

ToAddresses: ["toAddress@email.com"]

},

Message: {

Body: {

Text: {

Data: output.Key1

}

},

Subject: {

Data: "Ses Test Email"

}

},

Source: "mysource@source.com"

};

console.log('===SENDING EMAIL===');

var email = ses.sendEmail(eParams, function(err, data){

if(err) console.log(err);

else {

console.log("===EMAIL SENT===");

console.log(data);

}

});

console.log("EMAIL CODE END");

console.log('EMAIL: ', email);

context.succeed(event);

};

回答:

看来我将context.succeed(event)放在错误的代码区域中。

一旦将其移到sendEmail回调中,所有功能就可以使用。

var aws = require('aws-sdk');

var ses = new aws.SES({

accessKeyId: 'myAccessKey',

secretAccesskey: 'mySecretKey',

region: 'eu-west-1'

});

exports.handler = function(event, context) {

console.log("Incoming: ", event);

var output = querystring.parse(event);

var eParams = {

Destination: {

ToAddresses: ["toAddress@email.com"]

},

Message: {

Body: {

Text: {

Data: output.Key1

}

},

Subject: {

Data: "Ses Test Email"

}

},

Source: "mysource@source.com"

};

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

}

});};

以上是 在AWS Lambda函数中通过AWS SES发送电子邮件 的全部内容, 来源链接: utcz.com/qa/406697.html

回到顶部