【问题标题】:Receiving Email is not working in Amazon SES接收电子邮件在 Amazon SES 中不起作用
【发布时间】:2018-02-17 04:31:26
【问题描述】:

我尝试访问电子邮件并尝试将电子邮件存储在 S3 存储桶中,但它不起作用。

SES 配置:

  • 域验证
  • 电子邮件地址已验证
  • 在收件人提供的规则集中创建了规则集
  • 在给定的 S3 操作存储桶名称中
  • AMAZON_SES_SETUP_NOTIFICATION 已收到。

之后,如果我收到来自特定收件人的任何电子邮件,它不会存储在 S3 中。

【问题讨论】:

  • 你找到解决办法了吗?
  • 您找到解决方案了吗?我遇到了同样的问题
  • 在进行域验证时 DKIM 设置必须验证
  • 很复杂。我无法验证电子邮件地址,因为域是在 Route 53 中设置的 - 没有邮件服务器可以接收验证邮件,并且我无法在 Thunderbird 中接收,原因可能与验证邮件没有出现在S3 存储桶..
  • 有人找到解决方案了吗?我也面临同样的问题。

标签: amazon-web-services amazon-s3 amazon-ses


【解决方案1】:

我不是专家,但根据我的经验,在 SES 可以写入元素之前,您可能必须为存储桶分配特权,我一开始也遇到了类似的问题,所以我在操作选择中选择了创建存储桶选项配置规则,然后使用正确配置的权限自动创建存储桶。

【讨论】:

    【解决方案2】:

    如果您使用 Route53 进行域管理,您可能忘记为其设置 MX record

    这里是如何做的说明。

    https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-mx-record.html

    【讨论】:

      【解决方案3】:

      如果其他人仍然遇到此问题,请检查以下事项:

      1. 您的所有“片段”都位于同一区域(S3 存储桶、Route53 托管区域、SES 配置)
      2. SES 有权写入 S3 存储桶 (see this tutorial)
      3. 存储桶名称与您的域名相同
      4. Route53 托管区域有 MX 记录,这些记录由 SES 配置自动注入。您只需要在设置时注意

      【讨论】:

      • > 存储桶名称与您的域名相同 您确定吗?官方教程中没有提到
      【解决方案4】:

      只需确保您的规则集显示在“活动规则集”中即可。创建规则后,默认情况下将进入“非活动规则集”,您需要将其标记为“设置为活动规则集”,一旦这样做,它将进入“活动规则集”部分通过单击“查看活动规则集”按钮可以看到它。

      【讨论】:

        【解决方案5】:

        如果其他人的注册商有一个令人困惑的设置菜单:

        我在 SES 设置菜单中显示 MX 记录名称 = 您的域,值 = 10 inbound-smtp.us-east-1.amazonaws.com。 “10”意味着优先级,我只是将它直接复制/粘贴到我的注册商的服务器字段中,这导致记录无效。

        【讨论】:

          【解决方案6】:

          您需要验证您正在使用的规则集是否处于活动状态。转到 SES,然后单击侧边栏中电子邮件接收部分下的“规则集”。单击“查看活动规则集”按钮。确保这是您当前期望使用的规则集。要从“规则集”屏幕激活规则集,请单击规则集旁边的复选框,然后单击“设置为活动规则集”。

          【讨论】:

            【解决方案7】:

            我一开始也有同样的问题。但我注意到“拒绝访问”不是配置问题,而是与直接在浏览器中访问此信息有关的问题。通过 Visual Studio Code 中的终端使用“Aws Cli”下载文件后,我可以读取数据。注意激活规则 - 在 SES 面板中 - 因为 NOTIFICATION MESSAGE 有问题。 ;)

            【讨论】:

              【解决方案8】:

              MX 记录的主机名必须以“.”结尾像这样:

              10 inbound-smtp.us-east-1.amazonaws.com.

              否则记录的主机名会以你的域名作为后缀,这里不打算这样做。

              【讨论】:

              • 你确定吗?官方教程没有提到这个,我用Route53自动添加的,没有"."
              【解决方案9】:

              对我来说,问题是我没有激活规则集。我对设置的细节失去了理智,但它们都是正确的。

              确保您转到“查看活动规则集”并确保您创建的入站规则列在此处。

              【讨论】:

              • 请展开答案,例如说明如何检查规则集是否处于活动状态。通过 CLI 或网站。
              • 这是正确的答案,因为文档和视频中都没有提到。为此,我不得不联系 AWS 支持。真可惜……
              • 再深入一点,当您创建规则集时,即使它是唯一的规则集,它也不会自动使其“活跃”。因此,它需要手动启用
              【解决方案10】:

              TL;DR

              不要将 AWS 的 MX 记录添加到现有的 MX 记录中;您需要使用当前未用于电子邮件的域创建新的 MX 记录。

              背景

              我对 MX 记录和 SES 并不完全熟悉,而且我已经在 AWS Route53 中有一个 MX 记录集,我正在使用 GMAIL (G Suite)。

              所以我遵循了所有必要的步骤 - SES-Receive-Inbound-Emails AWS Blog Post - 我仍然不明白为什么在我的 S3 存储桶中看不到新电子邮件;我只能在桶中看到AMAZON_SES_SETUP_NOTIFICATION

              正如之前的答案中已经提到的,您必须添加 AWS 的 MX 记录才能接收电子邮件,最终将存储在您的 S3 存储桶中。

              经验教训

              在同一个 Record-Set 中有多个 MX 记录仅用于备份目的。如果服务器无法访问,它会移动到列表中的下一条记录。 不要期望所有 MX 记录都会收到电子邮件,这永远不会发生。

              糟糕的解决方案

              1 ASPMX.L.GOOGLE.COM
              5 ALT1.ASPMX.L.GOOGLE.COM
              5 ALT2.ASPMX.L.GOOGLE.COM
              10 ALT3.ASPMX.L.GOOGLE.COM
              10 ALT4.ASPMX.L.GOOGLE.COM
              10 inbound-smtp.eu-west-1.amazonaws.com # <-- added this one
              

              我还尝试将 AWS MX 的优先级从 10 更改为 1,这很愚蠢,因为我仍然想通过 GMAIL 将电子邮件接收到我的邮箱。

              很好的解决方案

              创建一个新的别名子域并将其用于 SES。

              方法如下:

              1. 假设我拥有mydomain.com,并且我的电子邮件地址是willy@mydomain.com,我想使用别名子域ses.mydomain.com
              2. 在您的 GSuite 中添加别名域 - 使用管理员帐户登录并转到管理控制台 > 域 > Follow the steps - 添加域别名 > 验证并确认所有权 > 域名提供商 = 其他
              3. 按照上一步的指南在AWS Route53中创建TXT记录;这将验证您是否拥有别名子域
              4. 返回 AWS,在 Route53 中创建一个新的记录集
                - Name:  ses.mydomain.com # replace 'ses' if necessary
                - Type:  MX
                - Value: # this is temporary, we'll change it in the next steps
                1 ASPMX.L.GOOGLE.COM
                5 ALT1.ASPMX.L.GOOGLE.COM
                5 ALT2.ASPMX.L.GOOGLE.COM
                10 ALT3.ASPMX.L.GOOGLE.COM
                10 ALT4.ASPMX.L.GOOGLE.COM
                
              5. 将 SES 设置为 S3 - 按照步骤操作 - SES-Receive-Inbound-Emails AWS Blog Post
                • 验证别名子域 ses.mydomain.com
                • 验证电子邮件地址 - willy@ses.mydomain.com - 检查您的常规收件箱 willy@mydomain.com 打开来自 AWS 的电子邮件并通过单击验证链接验证此电子邮件地址
                • 创建规则并将willy@ses.mydomain.com 添加为收件人
              6. 在 Route53 中编辑之前创建的 MX 记录集
                - Name:  ses.mydomain.com
                - Type:  MX
                - Value: 10 inbound-smtp.${AWS_REGION}.amazonaws.com  # replace ${AWS_REGION}
                
              7. 发送电子邮件(从任何邮箱)到willy@ses.mydomain.com - 您会在 S3 存储桶中看到该电子邮件!对象名称是散列的,您需要下载并将其扩展名更改为.eml

              我希望这会有所帮助。关于这个,我头疼了几个小时。

              【讨论】:

                猜你喜欢
                • 2017-01-30
                • 2016-08-03
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2020-08-28
                • 2016-08-22
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多