我无法在本地帐户中接收邮件,我只能从多个本地帐户 (@remote.A) 向多个外部帐户 (@A) 发送邮件。我可以发送到每个域(例如 gmail)。
到目前为止,经过多次测试,我注意到当我发送没有 SMTP AUTH 的邮件时,我会收到来自 ISP 邮件服务器的消息,说 SMTP AUTH 已激活,我必须激活才能通过该服务器。如果我尝试在域帐户之间的外部服务器中发送邮件,我不会在本地服务器中收到任何邮件。如果我尝试在本地帐户之间的本地服务器中发送邮件,我将在本地收到邮件,它不会像预期的那样通过我的外部服务器。
在我的外部服务器中,我有 cpanel,我可以在 cpanel 中创建外部电子邮件帐户。在那里,我为只想在本地邮件服务器中使用的域配置了电子邮件路由。我已设置了具有次要优先级的 MX 记录(首先,我默认拥有我的电子邮件域)。它配置为自动处理默认情况下带来的邮件(*)。次要优先级是我的静态 IP 的链接(电子邮件域的子域)。我已经搜索了我的 IP 是否被阻止,从大列表中,只有 1 个阻止了我。我还配置了外部服务器的 SPF 来验证来自本地服务器的发送。
(*)
自动检测配置:(本地)邮件交换器本地邮件交换器备份邮件交换器远程
现在我在本地服务器 Postfix 中的 main.cf 中有以下内容: http://pastebin.com/KsEDzD4T
我一直试图通过 virtual_alias_maps 将收到的外部邮件重新路由到本地服务器中的本地帐户,但我认为这不是目前的问题,因为我无法从外部服务器推送邮件。收到的邮件正在该服务器中堆积。
由于我在 DMZ 中测试,因此所有端口均已打开。然后我寻找本地防火墙,默认情况下处于关闭状态。
但是我至少有针对 IMAP 运行的进程(没有 SMTP 和 POP3):
remote:Postfix root# netstat -tnlp tcp | grep '\.143 '
tcp4 0 0 192.168.1.1.143 192.168.1.1.50825 ESTABLISHED
tcp4 0 0 192.168.1.1.50825 192.168.1.1.143 ESTABLISHED
remote:Postfix root# netstat -tnlp tcp | grep '\.993 '
tcp4 0 0 192.168.1.1.993 192.168.1.1.49455 ESTABLISHED
tcp4 0 0 192.168.1.1.49455 192.168.1.1.993 ESTABLISHED
tcp4 143 0 192.168.1.1.65235 192.168.1.1.993 CLOSE_WAIT
tcp4 0 0 192.168.1.1.993 192.168.1.1.54435 ESTABLISHED
tcp4 0 0 192.168.1.1.54435 192.168.1.1.993 ESTABLISHED
tcp4 0 0 192.168.1.1.993 192.168.1.1.50955 ESTABLISHED
tcp4 0 0 192.168.1.1.50955 192.168.1.1.993 ESTABLISHED
tcp4 0 0 192.168.1.1.993 192.168.1.1.50944 ESTABLISHED
tcp4 0 0 192.168.1.1.50944 192.168.1.1.993 ESTABLISHED
tcp4 0 0 192.168.1.1.993 192.168.1.1.50874 ESTABLISHED
tcp4 0 0 192.168.1.1.50874 192.168.1.1.993 ESTABLISHED
tcp4 0 0 192.168.1.1.993 192.168.1.1.50852 ESTABLISHED
tcp4 0 0 192.168.1.1.50852 192.168.1.1.993 ESTABLISHED
我不太清楚邮件将通过哪些端口从外部服务器推送到本地,因为我认为这是从 MTA 到 MTA 的连接。
我现在用于测试的外部 IP 地址是动态 IP,具有 DNS 名称,并且已激活 DNS 反向功能。设置此邮件服务器后,我将添加静态 IP。
SPF 原始:v=spf1 +a +mx +ip4:X ~全部
我认为我已经使用 cpanel 执行了正确的步骤,但我不知道如何设置 Postfix 和 Dovecot 来接收/推送来自外部服务器的邮件。这是我第一次尝试这样做,我需要一些专家建议。
答案1
为了接收邮件,您必须打开并启用 SMTP。这是其他服务器向您的服务器发送邮件的方式。IMAP 和 POP3 仅用于远程阅读电子邮件。您应该能够使用 SMTP 在您域中的邮箱之间发送邮件,以及从外部地址向您的域发送邮件。请注意不要启用将发送到外部地址或从外部地址发送邮件的“开放中继”。
尝试使用 telnet 连接到您的服务器并获取更详细的错误。
telnet smtp.example.com 25
跟随本指南使用 telnet 发送电子邮件并查找 smtp 服务器返回的特定错误代码。您还可以查看邮件队列mailq | less
,其中将显示正在等待传送的消息以及他们是否已尝试传送这些消息。