【问题标题】:How to implement inbound email on Amazon AWS?如何在亚马逊 AWS 上实现入站电子邮件?
【发布时间】:2013-11-25 22:47:36
【问题描述】:

我对 AWS 比较陌生,但我正在尝试弄清楚如何让 AWS 接收电子邮件。根据这篇帖子How to configure email accounts like support@xyz.com or feedback@xyz.com on AWSSES 只处理出站电子邮件。

我希望实现的是过滤别名的能力。例如,如果别名是“xyz12alias”,那么任何发送到“xyz12alias@mydomain.co”的电子邮件都可以看到该电子邮件并适当地处理内容。在我的情况下,它将存储在与过滤器关联的帐户中。

谁能指导我使用 AWS 中允许我在 Amazon AWS 上实施入站电子邮件的策略或服务?

https://postmarkapp.com/inbound 似乎给了我想要的东西,但是 AWS 框架本身有什么东西吗? postmarkapp 是否有替代服务?

谢谢。

【问题讨论】:

    标签: amazon-web-services email inbound


    【解决方案1】:

    Amazon Simple Email Service 刚刚引入了接收电子邮件支持:

    https://aws.amazon.com/about-aws/whats-new/2015/09/amazon-ses-now-supports-inbound-email/

    除了提供可扩展、经济高效的电子邮件发送 平台,Amazon SES 现在可以接受您的传入电子邮件。你可以 配置 Amazon SES 以将您的消息传送到 Amazon S3 存储桶, 通过 AWS Lambda 函数调用您的自定义代码,或发布 到 Amazon SNS 的通知。您还可以将 Amazon SES 配置为删除 或退回您不想收到的消息。如果您选择存储 您在 Amazon S3 中的邮件,Amazon SES 可以使用 AWS 加密您的邮件 将密钥管理服务 (KMS) 写入存储桶之前。

    您可以通过定义接收规则来配置所有这些操作,其中 您使用 Amazon SES 控制台或 Amazon SES API 进行设置。 接收规则使单个消息能够触发多个操作。 您的规则可以根据您的选择广泛或具体,因为您 可以将它们配置为应用于特定的电子邮件地址或整个 域。

    您还可以使用接收规则来控制 Amazon SES 的哪些消息 可以代表您接受。另一种过滤方法是设置 自定义 IP 地址阻止列表和允许列表。如果你知道你 不想接收来自特定 IP 地址的邮件 范围,只需将其添加到您帐户的 IP 地址阻止列表中。你可以 还通过将 IP 地址范围添加到您的允许来覆盖阻止列表 列表,提供对入站电子邮件的细粒度控制 交通。

    【讨论】:

      【解决方案2】:

      您必须设置自己的服务器;这就是使用 AWS 处理它的方法。除了批量电子邮件递送服务外,他们不提供任何其他服务。以下几个链接:

      http://jeffreifman.com/how-to-install-your-own-private-e-mail-server-in-the-amazon-cloud-aws/

      http://cerebellumstrategies.com/2012/04/15/amazon-linux-postfix-dovecot/

      更新:AWS 中现在有一个可用的解决方案,如下面的 cmets 中所引用。

      【讨论】:

      • 该产品在 2013 年 11 月可用吗?就是想;谢谢。
      • 不,不是。今年是 AWS 的新功能。
      • 我取消选中此项作为正确答案,并检查以下项目为正确,因为它 AWS 可以接收电子邮件。但 2 年来,这是正确的答案。
      【解决方案3】:

      在 SES 上似乎仍然不可能。不过,我建议您看看 Mandrill 和 Sendgrid。

      http://mandrill.com/features/

      https://sendgrid.com/docs/API_Reference/Webhooks/parse.html

      【讨论】:

        【解决方案4】:

        以下是如何使用 Amazon 和任何虚拟服务器将电子邮件从 SES 传送到本地 IMAP 帐户。 这个计划是关于稳定运行的:每一步都在我们的控制之下。

        1. 让 SES 接收电子邮件
        2. 并传递到 S3 存储桶并向 SNS 主题发送通知
        3. 使用 HTTPS 协议订阅该通知
        4. 使用 aws/aws-php-sns-message-validator 并编写一个小的 PHP 脚本以通过 HTTPS 从 SNS 接收通知
        5. SNS 只发送消息 ID-s,把它们放在一个文件中
        6. 在您的服务器上安装 incron 以启动一个 shell 脚本,该脚本通过 s3cmd 从 S3 存储桶下载这些消息并通过 sendmail 传送到本地 IMAP 帐户
        7. 使用任何 IMAP 服务器,我使用 Courier IMAP
        8. 阅读您的消息,例如Rainloop 网络邮件
        9. 也可以使用 SES 发送外发电子邮件

        【讨论】:

          【解决方案5】:

          使用AWS SES inbound mail support 时,主要挑战在于,它非常适合编程任务,但由于它以原始消息传递格式接收,因此很难让人阅读。

          您可以设置 S3 存储桶、SNS 主题(可以再次链接到电子邮件、SMS 等)、Lambda 以转发其接收到的相同格式的入站邮件,以根据内容的内容采取任何编程操作电子邮件。

          如果您想以人类可读的格式阅读消息,您需要编写自己的代码来进行格式化。例如,使用 Serverless lambda SES forwarder 包含,NodeJS 代码在 Lambda 中运行,将原始电子邮件转换为人类可读格式并转发到收件人电子邮件。

          【讨论】:

            猜你喜欢
            • 2017-03-13
            • 2013-05-25
            • 1970-01-01
            • 1970-01-01
            • 2015-06-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多