Lambda上的AWS SES-无法(静默)发送电子邮件 [英] AWS SES on Lambda - fails (silently) to send email

查看:131
本文介绍了Lambda上的AWS SES-无法(静默)发送电子邮件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用,以便将电子邮件发送给经过验证的收件人.

I'm trying to use the amazon-ses service on a aws-lambda in order to send an email to verified recipients.

我正在关注很简单该教程显示了一个简单的函数的问题:

I'm following this simple tutorial which shows a simple nodejs function:

var aws = require('aws-sdk');
var ses = new aws.SES({region: 'us-east-1'});

exports.handler = (event, context, callback) => {

     var params = {
        Destination: {
            ToAddresses: ["recipientEmailAddress"]
        },
        Message: {
            Body: {
                Text: { Data: "Test" }
            },
            Subject: { Data: "Test Email" }
        },
        Source: "sourceEmailAddress"
    };

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

以下政策是lambda角色的一部分:

The following policy is part of the lambda's role:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ses:SendEmail"
            ],
            "Resource": "*"
        }
    ]
}

出于某种原因,此lambda函数无法发送任何电子邮件,并且在该函数的CloudWatch Log组内未提供任何状态信息:

For some reason, this lambda function fails to send any emails and it doesn't provide any status information inside the function's CloudWatch Log group:

REPORT RequestId: XXX   Duration: 534.59 ms Billed Duration: 600 ms Memory Size: 128 MB Max Memory Used: 117 MB 


任何帮助将不胜感激.


编辑:我在沙盒模式中工作,并且 source 收件人都是来自该地区的经过验证的电子邮件代码中提到的内容(它也反映在日志中-不会引发任何错误).

I work in sandbox-mode and both source and recipient are verified emails from the region mentioned in the code (It is also reflected in the logs - no errors being thrown).

我在SO中发现了以下问题-但对我的案子没有相关答案:

I Found the following questions in SO - but no relevant answer to my case:

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

AWS SES发送电子邮件lambda每次都不发送

SES电子邮件未发送

在发送邮件时出现python错误亚马逊ses与aws lambda

推荐答案

我认为 context.succeed 已过时.您也可以使用 async/await :

I think context.succeed is deprecated. Also you can use async/await:

exports.handler = async (event, context) => {

 var params = {
    Destination: {
        ToAddresses: ["recipientEmailAddress"]
    },
    Message: {
        Body: {
            Text: { Data: "Test" }
        },
        Subject: { Data: "Test Email" }
    },
    Source: "sourceEmailAddress"
};

const data = ses.sendEmail(params).promise()
return data
};

这篇关于Lambda上的AWS SES-无法(静默)发送电子邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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