【问题标题】:Using Amazon SES for 2 domains将 Amazon SES 用于 2 个域
【发布时间】:2021-11-17 19:48:17
【问题描述】:

我目前有一个 AWS 账户,其中包含我设置的 2 个不同域(网站)的 2 个 ec2 实例。之前,我验证了其中一个域,为其创建了一个 IAM 用户,并成功提交了从沙箱中删除该账户的请求。现在我也希望将 SES 用于其他域。我知道如何为 2 个域设置不同的 MAIL FROM 域,但就代码而言,我通过创建新的 IAM 用户(然后在代码中使用)生成的访问和密钥似乎没有考虑到不同的域。是否可以将 AWS SES 用于像这样的两个单独的域(从每个应用程序发送的电子邮件具有不同的 MAIL FROM 域),如果可以,代码如何知道电子邮件正在发送到哪个域?有没有办法以某种方式将 IAM 用户链接到域?

【问题讨论】:

    标签: amazon-web-services amazon-ses


    【解决方案1】:

    代码如何知道电子邮件是在哪个域发送的?

    您正在编写的代码必须知道它正在使用的FROM 电子邮件地址。这就是您的代码如何知道它正在使用哪个域发送电子邮件的方式。

    有没有办法以某种方式将 IAM 用户链接到域?

    这在 AWS SES 官方文档的 Controlling access 部分中有详细记录。特别是在“限制发件人地址”部分下:

    以下策略允许用户调用 Amazon SES 电子邮件发送 API,但前提是“发件人”地址是 Marketing@example.com。

    {
      "Version":"2012-10-17",
      "Statement":[
        {
          "Effect":"Allow",
          "Action":[
            "ses:SendEmail",
            "ses:SendRawEmail"
          ],
          "Resource":"*",
          "Condition":{
            "StringEquals":{
              "ses:FromAddress":"marketing@example.com"
            }
          }
        }
      ]
    }
    

    您可以使用 IAM 策略中的条件将角色限制为仅发送具有特定 FROM 电子邮件地址的电子邮件。

    【讨论】:

    • 在我的一个应用程序中,用户使用他们的电子邮件创建帐户,并且 ses 电子邮件从他们注册的电子邮件地址发送(在验证电子邮件地址后)。经过验证的电子邮件不一定与域相关联 - 包含发件人电子邮件如何指示电子邮件来自哪个应用程序?
    • 这些用户电子邮件地址是否作为已验证地址添加到 SES?
    • 是的 - 通过控制台手动执行,但最终将使用 api 自动化编辑:当我说经过验证的电子邮件不一定与域相关联时,我的意思是我的两个应用程序的域,不是 gmail、yahoo 等。
    • 那么您不能真正在 IAM 策略中为该应用程序的 FromAddress 添加限制。此外,您不断询问诸如代码如何知道域,或者“包含发件人电子邮件将如何指示电子邮件来自哪个应用程序”之类的问题。这似乎与 AWS IAM 无关。您将 IAM 权限分配给 EC2 实例,然后在该实例上运行的代码将能够执行该 IAM 策略中允许的事情,但这不会为您的代码配置有关电子邮件域的知识。配置您的代码是独立于 AWS IAM 进行的。
    • 如果发送电子邮件是john.smith54@gmail.com,那么它根本不使用您的发送域,因为该发送域不匹配。相反,它将使用您当前手动验证的已验证电子邮件地址,该地址与已验证域分开。 SES 发送的每封电子邮件都必须匹配经过验证的域或经过验证的电子邮件。您似乎正在寻找电子邮件域和特定应用程序之间不存在的某种联系。
    猜你喜欢
    • 2018-06-09
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    • 2011-08-23
    相关资源
    最近更新 更多