尝试使用Alexa和AWS SES发送电子邮件。电子邮件将发送,但是Alexa将返回并且错误

时间:2019-09-11 19:14:10

标签: node.js alexa amazon-ses alexa-skill

我正在编写Alexa技能,其中一项功能是请求使用AWS SES向用户发送电子邮件。

当说出要发送的电子邮件时,将发送电子邮件,但是Alexa会始终答复“所请求的技能的响应存在问题”。

我已经过测试,以确保“ getEmail”意图本身可以正常工作。 我也尝试过在意图内移动该功能,但这具有相同的结果。

此功能似乎可以使用SES发送电子邮件:

函数sendEmail(事件,上下文,回调){

    var params = {
    Destination: {
        ToAddresses: ["xyz@gmail.com"]
    },
    Message: {
        Body: {
            Text: { Data: "Hi. Here is your email"

            }

        },

        Subject: { Data: "Here is an email"

        }
    },
    Source: "abc@gmail.com"
};


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

    }

});

}

这里是调用sendEmail()函数的意图。

'getEmail': function () {

    sendEmail();
    var bodyTemplate1 = new Alexa.templateBuilders.BodyTemplate1Builder();

    var template1 = bodyTemplate1.setTitle("email").setTextContent(makeRichText("email")).setBackgroundImage(makeImage(image)).build();

    this.response.speak("Your email has been sent").renderTemplate(template1).shouldEndSession(true);
    this.emit(':responseReady');

},

当我运行此程序时,我希望电子邮件发送到设备,Alexa只说“您的电子邮件已发送”。目前,只有电子邮件发送,并且设备显示“请求的技能的响应存在问题”

Here is the error message from AWS Cloud

1 个答案:

答案 0 :(得分:0)

在查看日志时,您的callback(null, {err: err, data: data});是这里的问题。根据您发布的代码,callback不存在(将为undefined)。看来您不需要在那里,可以将其删除。

AWS SDK - SES.sendEmail

“回调”只是作为第二个参数传递的函数。