在 Amazon EC2 服务器上接收电子邮件

在 Amazon EC2 服务器上接收电子邮件

我刚刚开始使用 EC2 实例,并取消了邮件发送限制,允许我从实例发送电子邮件。但由于缺乏经验,我不知道如何在该服务器上启用接收发送给我的电子邮件。

该实例有一个弹性 IP,我有一个域名,其中有指向该 IP 的 A 记录。我似乎找不到更好的文档来说明需要采取哪些步骤,因此如果有人发送电子邮件到[电子邮件保护]它要么实际接收它,要么只是将其转发到我的个人电子邮箱。

我知道它涉及使用 postfix,但在安装后找不到正确配置它的指南。

答案1

  • A指向您的服务器的记录。
  • MX指向您的A记录的记录。
  • 邮件守护进程在端口 25 上监听 —— 我倾向于使用 Postfix。
  • 防火墙规则允许端口 25 接受连接。在 EC2 上,您需要在安全组中设置此项

答案2

我也遇到过类似的问题。我设置了 MX 记录,安全策略中也解除了端口封锁,但端口扫描仍然显示端口 25 被封锁。

我碰到AWS 论坛上的这个答案。看来您必须请求专门解除对 25/445 端口的阻止。http://mxtoolbox.com/应该对测试你的服务器有用。

答案3

您需要安装一个 SMTP 守护程序(例如 postfix),因此,首先从 AWS 安全组打开端口。

然后,您可以按照配置指南进行操作 -看一下 postfix 基本配置指南。

简而言之,您需要 100% 确定您不是以开放依赖的身份运行。下面是我使用的基于用户名的简单交付的非常基本的 main.cf:

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
append_dot_mydomain = no

myhostname = mail.domain.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

mydestination = hostname.domain.com, localhost.mydomain.com, localhost
relayhost =
mynetworks = 127.0.0.0/8
#mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all


smtpd_helo_restrictions =
    permit_mynetworks,
    #reject_non_fqdn_hostname,
    reject_invalid_hostname,
    permit

答案4

还值得注意的是,直接从 ec2 实例发送电子邮件可能会导致它们被标记为垃圾邮件。

使用亚马逊的 SES 服务来解决这个问题 - 但也请注意该系统有已知的错误...例如 mac osx 默认的 jpeg 图像 mime 类型被阻止。

如果您能够在其他地方拥有邮件,我会这样做,因为为愚蠢的 SES“功能”实施变通方法可能会很麻烦。

相关内容