设置自动转发到另一个地址的电子邮件帐户

设置自动转发到另一个地址的电子邮件帐户

我按照此处的教程在 Amazon AWS 上设置了一个 EC2 实例并安装了 LAMP 堆栈:
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html
我为我的实例分配了一个弹性(即静态)IP 地址,并将我拥有的域名指向它(通过我的域名注册商处理的 DNS 记录,不是 AWS)。当我浏览我的域时,我可以看到我的 index.html 文件 - 到目前为止一切正常。

我想设置一些电子邮件地址,这些地址会自动转发到现有的 Gmail 帐户。假设我的域名是mydomain.com- 我想要设置[email protected],并且每当有人向此地址发送电子邮件时,我希望它会自动转发到(例如)[email protected]

设置它最简单的方法是什么?我想知道 AWS 是否有我可以遵循的教程。

答案1

最简单的方法是完全不让服务器参与邮件。这是一项低价值服务,涉及垃圾邮件和投递的复杂性,涉及 SPF、DKIM 等相关技术。

我建议您使用托管电子邮件提供商 - 有很多,包括 Google for Business、Office 365、Fastmail 等。将您的 DNS MX 记录指向该提供商,进行配置,然后使用 IMAP/Web 邮件检查电子邮件。如果您愿意,这些平台还允许您配置邮件转发。

更新:我在 Google 上搜索了“免费电子邮件转发”,结果发现ImprovMXForwardMX(不免费)。我对他们一无所知,但他们可以做你想做的事 - 设置你的 MX 记录,然后将其转发到你的电子邮件。请注意,两者都可以阅读你的电子邮件。ImprovMX 没有隐私政策。ForwardMX 有隐私政策,并且收取相对较少的转发费用。

免费解决方案:如果你想从你的服务器设置邮件转发,这只会花费你的带宽,你可以使用这个答案来自 Server Fault。看上去相当简单。

答案2

谢谢@Tim 链接的另一个问题,我得到了正确的方向并解决了这个问题。

另一个问题描述了我遇到的相同问题。那里的主要答案(至少到目前为止)建议使用 Postfix 来做事情。另一个答案建议使用 Sendmail。我决定尝试 Sendmail 建议,因为它看起来非常简单,并且默认情况下 Sendmail 安装在我的 EC2 实例上,而 Postfix 没有。事情并不像答案所暗示的那么简单,但我通过执行以下操作使其正常工作:

  1. 首先,您需要确保 DNS 记录正确无误,以便世界各地的邮件服务器知道将发送到某个@mydomain.com地址的电子邮件定向到哪里。在我的域的 DNS 记录中,我有一个MX指向的记录mydomain.com.,然后我有一个指向我的 EC2 实例的弹性(即静态)IP 地址的记录。这告诉邮件服务器将此域的电子邮件定向到记录A指示的 IP 地址,即我的 EC2 实例。Amydomain.com

现在需要配置 Sendmail 来监听传入的电子邮件,并根据需要转发。我找到了一个关于如何实现这一点的教程这里。步骤如下:

  1. 系统需要知道它作为哪个域的邮件服务器 - 否则 Sendmail 将不会转发这些电子邮件。编辑/etc/mail/local-host-names并添加相应的域名:

    # local-host-names - include all aliases for your machine here.
    mydomain.com
    myotherdomain.com
    
  2. 编辑/etc/mail/access以告知 Sendmail 为您的域中继邮件。此文件用于安全。添加:

    mydomain.com RELAY
    
  3. 默认情况下,Sendmail 不会监听外部传入邮件。/etc/mail/sendmail.mc其中有一行告诉 Sendmail 只监听 IPv4 环回地址 127.0.0.1,而不监听任何其他网络设备。删除环回地址限制以接受来自互联网的电子邮件。

    改变

    DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
    

    DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
    
  4. 现在我们需要设置“虚拟用户”,即要自动转发的电子邮件地址。下面这行应该在 中sendmail.mc;如果没有,请添加:

    FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dnl
    

    这告诉 Sendmail 在文件(编译版本)中查找virtusertable要自动转发的地址以及应转发到的位置。在文件中virtusertable,添加以下内容:

    [email protected] [email protected]
    

    我相信您还需要在 中添加一行sendmail.mc,以告诉 Sendmail 适用于哪个域virtusertable。因此,还请添加以下行:

    VIRTUSER_DOMAIN_FILE(`/etc/mail/virtual-domains')dnl
    

    并在 中virtual-domains添加以下内容:

    mydomain.com
    
  5. Sendmail 不会直接读取所有这些配置文件 - 它们需要经过编译。在目录make中运行/etc/mail。您需要sendmail-cf安装软件包才能运行此功能。

  6. 重新启动 Sendmail:sudo service sendmail restart

此时我认为一切都应该正常工作……但事实并非如此。我忽略了它几天,考虑到我可能会再次尝试使用 Postfix,然后我才想起一些事情……AWS 应用安全规则来阻止/允许某些网络流量。邮件服务器通过 SMTP 监听新邮件,但我没有设置规则以允许端口 25 上的传入流量。因此,在 AWS 管理控制台中,请确保在应用于 EC2 实例的安全组中打开入站 TCP 端口 25。一旦我这样做,一切都立即开始按预期工作。发送到的电子邮件[email protected]现在正在(通过我的 EC2 实例上的 Sendmail)传递到[email protected]

相关内容