我可以使用我的域名下的任何电子邮件来使用 AWS SES 发送电子邮件吗?

Can I use any email under my domain name to send emails using AWS SES?

请原谅我问了一个非常愚蠢的问题。我是 SES 的新手,我在 AWS 文档中找不到关于此的直接答案。

一些背景信息:我在 EC2 上使用节点服务器。我拥有一个域,比方说 "mydomain.com"。我只需要 AWS SES 向我的客户发送电子邮件,我计划在我的 EC2 服务器中使用 AWS-SDK 与 SES 交谈。 我不需要收到客户的任何电子邮件

根据 AWS SES 文档,我只需要验证我的域或我的电子邮件地址 - 只需其中之一。

假设我选择验证我的域 mydomain.com,但我没有验证电子邮件。那么,当我使用 AWS-SDK sendEmail() 时,如果我没有验证任何电子邮件,我使用什么电子邮件 should/can?

我可以使用任何使用我的域名的电子邮件吗?例如。支持@mydomain.com?

感谢您的回答!

验证是为了确保您是所有者至少是一个电子邮件地址你要用。

因此,当您验证域时,您将被验证为该域的管理员,因此可以访问该特定域上的任何电子邮件地址。

详细来说,如果您可以证明您可以更改域的 DNS 记录(正如您在验证时所做的那样),您可以更改任何与电子邮件相关的 DNS 记录,例如 MX records (more on the wiki),因此任何其他不需要验证。

我鼓励您了解有关 MX 记录的更多信息。

只要您能够验证您的域名,是的,您可以使用任何带有您域名的电子邮件。 AWS 想知道您是域的所有者。

提示:

"I plan to use AWS-SDK in my EC2 server to talk to SES."

我建议使用 AWS Lambda 函数和 NodeJS 并从 API 网关触发它们。通过这种方式,您可以节省每月花在具有高可用性 API 来发送电子邮件的 EC2 实例上的费用。

此外,您还可以在业务流程的任何地方使用此 API。

这是一个通过 Lambda 函数使用 AWS SES 服务发送电子邮件的示例代码。

var AWS = require('aws-sdk');
var ses = new AWS.SES();
 
var RECEIVER = 'to@yourdomain.com';
var SENDER = 'from@yourdomain.com';

var response = {
 "isBase64Encoded": false,
 "statusCode": 200,
 "headers": {
        "X-Requested-With": '*',
        "Access-Control-Allow-Headers": 'Content-Type,X-Amz-Date,Authorization,X-Api-Key,x-requested-with',
        "Access-Control-Allow-Origin": '*',
        "Access-Control-Allow-Methods": 'POST,GET,OPTIONS'
    },
 "body": "{\"result\": \"Success.\"}"
 };

exports.handler = function (event, context) {
    var formdata = JSON.parse(event.body);
    sendEmail(formdata, function (err, data) {
        context.done(err, response);
    });
};
 
function sendEmail (formdata, done) {
    var params = {
        Destination: {
            ToAddresses: [
                RECEIVER
            ]
        },
        Message: {
            Body: {
                Text: {
                    Data: 'name: ' + formdata.name + '\nemail: ' + formdata.email + '\ndesc: ' + formdata.desc,
                    Charset: 'UTF-8'
                }
            },
            Subject: {
                Data: 'Website Referral Form: ' + formdata.name,
                Charset: 'UTF-8'
            }
        },
        Source: SENDER
    };
    ses.sendEmail(params, done);
}