当前位置: 首页 > 面试题库 >

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

孔和风
2023-03-14
问题内容

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


 类似资料:
  • 问题内容: 如何使用PHP发送带有图片的HTML格式的电子邮件? 我想要一个带有一些设置和HTML输出的页面,该页面通过电子邮件发送到一个地址。我该怎么办? 主要问题是附加文件。我怎样才能做到这一点? 问题答案: 非常简单,将图像保留在服务器上,然后将PHP + CSS发送给它们… 正是这一行告诉邮件发件人和收件人,该电子邮件包含(希望)格式正确的HTML,需要对其进行解释: 这是我获得信息的链接

  • 如何使用PHP发送带有图片的HTML格式的电子邮件? 我想有一个网页与一些设置和HTML输出,通过电子邮件发送到一个地址。我该怎么办? 主要问题是附加文件。我怎么能那样做?

  • 问题内容: 我正在使用。 使用发送电子邮件(通过)的最佳方法是什么? 问题答案: 有关使用Outlook的解决方案,请参见下面的TheoretiCAL答案。 否则,请使用python随附的smtplib。请注意,这将要求您的电子邮件帐户允许smtp,默认情况下不一定启用此功能。 编辑: 此示例使用保留域,如RFC2606中所述 为了使它真正与gmail配合使用,Doe先生需要进入gmail中的选项

  • 我使用的PHPMailer表格在这里找到。 从网站下载的示例是“接触-3”,在引导主题中使用PHPMailer通过gmail发送SMTP电子邮件。当我使用“接触-1”时,它完全适用于我的托管域电子邮件地址,但SMTP版本适用于gmail地址,联系人表单不会提交。 在下面的代码中,我更改了以下行以添加我的gmail地址和gmail密码: 任何关于使用给定信息进行此工作的帮助都将不胜感激-提前感谢!

  • 问题内容: 在我的中,我具有以下内容: 我的电子邮件代码: 当然,如果通过设置调试服务器,则可以在终端中看到该电子邮件。 但是,我实际上如何不将电子邮件发送到调试服务器,而是发送到user@gmail.com? 阅读你的答案后,让我弄明白一点: 你不能使用localhost(简单的ubuntu pc)发送电子邮件吗? 我认为在django 1.3中已经过时了,取而代之的是? 问题答案: 将电子邮件

  • 我使用SendInBlue Java Api发送电子邮件,我在scala中编写了以下代码: 但我得到了这个错误:{“代码”:“失败”,“消息”:“需要有效的”至“电子邮件地址”,“数据”:[]}