我正在尝试在我的 AWS Ubuntu 盒子上发送/接收电子邮件。为此,我遵循了 Amazon 发布的说明这里(我跳过了标题为“使用安全隧道配置集成”)
但是,我仍然无法发送任何电子邮件。当我尝试发送电子邮件到时[email protected]
,它失败了:
local_user@ip-172-XXX-XXX-XXX:~$ netcat mydomain.com 25
220 mydomain.com ESMTP Postfix (Ubuntu)
ehlo mydomain.com
250-mydomain.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from: [email protected]
250 2.1.0 Ok
rcpt to: [email protected]
454 4.7.1 <[email protected]>: Relay access denied
以下是日志文件显示的内容:
$ sudo tail -F /var/log/mail.log
Oct 17 18:06:10 ip-172-XXX-XXX-XXX postfix/smtpd[22869]: warning: hostname ec2-54-XXX-XXX-XXX.us-west-2.compute.amazonaws.com does not resolve to address 54.XXX.XXX.XXX
Oct 17 18:06:10 ip-172-XXX-XXX-XXX postfix/smtpd[22869]: connect from unknown[54.XXX.XXX.XXX]
Oct 17 18:06:31 ip-172-XXX-XXX-XXX postfix/smtpd[22869]: NOQUEUE: reject: RCPT from unknown[54.XXX.XXX.XXX]: 454 4.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<mydomain.com>
我该如何解决这个问题?问题是什么?请注意,我的 EC2 位于 AWS区域。但我已在文件中将US West (Oregon)
中继主机设置为。这是问题吗?我不认为是。email-smtp.us-east-1.amazonaws.com:25
main.cf
我的 main.cf 文件已发布这里
答案1
您的中继主机出现了拼写错误。
relayhost = email-smtp.us-east.amazonaws.com:25
应该
relayhost = email-smtp.us-east-1.amazonaws.com:25
答案2
这是预期行为。邮件服务器仅接受未经身份验证的传入连接,发送邮件至本地用户。对于经过身份验证的用户,此限制无效(请参阅permit_sasl_authenticated
)smtpd_relay_restrictions
,因此这些用户可以中继邮件(邮件服务器将邮件发送到互联网)。
要允许特定主机无需身份验证,请将其添加到mynetworks
参数中。
顺便说一句,您在值之间缺少逗号smtpd_relay_restrictions
。