首页 > 解决方案 > 有没有办法检查发送的 SES 电子邮件是否成功发送或使用 javascript sdk 退回

问题描述

我正在使用 AWS SES 开发工具包以 JavaScript 发送电子邮件。我会让用户调用这个函数,他们需要知道他们的电子邮件是否成功发送。这是我当前的代码:

var aws = require("aws-sdk");
let credentials = aws.config.credentials;
aws.config.update({
    region: "us-east-1",
});

// Specify a configuration set. 
const configuration_set = "test";

const ses = new aws.SES();

var to = ['bounce@simulator.amazonses.com']
var from = 'tester@gmail.com'

const params = {
    Source: from,
    Destination: { ToAddresses: to },
    Message: {
        Subject: {
            Data: "Sending emails through SES"
        },
        Body: {
            Text: {
                Data: 'Hello world www.google.ca',
            }
        }
    },
    ConfigurationSetName: configuration_set
};


ses.sendEmail(params, function (err, data) {
    if (err) throw err
    console.log(data)
    //Do something here to check if email was delivered successfully
})

控制台返回的数据是一个RequestId和一个MessageId。我已经研究过是否可以使用 MessageId 检查电子邮件的传递状态,但似乎并非如此。有没有其他方法可以让调用此功能的人知道他们的电子邮件是否已成功发送或退回/未发送。

标签: amazon-web-servicesamazon-ses

解决方案


从此代码生成的消息 ID 仅告诉您 SES 已接受电子邮件,并将尝试将其发送到目的地。当 ses 将其发送给收件人时,相同的消息 ID 将作为标题插入,这并不能告诉您它是否已发送,您需要在 ses 上启用发送、投诉、退回验证身份的通知。SES 提供了一个选项以两种方式通知它,向 sns 订阅者或返回路径地址。

https://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity-using-notifications.html


推荐阅读