为什么我不能使用Postfix发送/接收来自AWS Ubuntu的电子邮件?

我试图在我的AWS Ubuntu框上发送/接收电子邮件。 为此,我按照亚马逊在这里发布的指示。 (我跳过了题为“使用安全隧道configuration集成”一节

不过,我仍然无法发送任何电子邮件。 当我尝试发送邮件到[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)地区。 但是我已经在main.cf文件中设置了中继主机到email-smtp.us-east-1.amazonaws.com:25 。 这是问题吗? 我不认为是。

我的main.cf文件张贴在这里

你的relayhost有一个错字。

 relayhost = email-smtp.us-east.amazonaws.com:25 

应该

 relayhost = email-smtp.us-east-1.amazonaws.com:25 

这是预期的行为。 邮件服务器接受未经身份validation的传入连接只会向本地用户发送邮件。 对于通过身份validation的用户,此限制无效(请参阅permit_sasl_authenticated中的smtpd_relay_restrictions ),因此允许这些用户中继邮件(邮件服务器传递到Internet)。

要允许没有身份validation的特定主机,请将其添加到mynetworks参数。


你btw丢失smtpd_relay_restrictions的值之间的逗号。