![GoDaddy:exim4 接收电子邮件但因“无路由到主机”错误而无法发送](https://linux22.com/image/743155/GoDaddy%EF%BC%9Aexim4%20%E6%8E%A5%E6%94%B6%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%E4%BD%86%E5%9B%A0%E2%80%9C%E6%97%A0%E8%B7%AF%E7%94%B1%E5%88%B0%E4%B8%BB%E6%9C%BA%E2%80%9D%E9%94%99%E8%AF%AF%E8%80%8C%E6%97%A0%E6%B3%95%E5%8F%91%E9%80%81.png)
在由 GoDaddy 托管的 Ubuntu 16.04 VPS 上,我希望能够使用我的域名发送电子邮件。
我通过 Vestacp 创建了一个邮件用户[email protected]
,安装了 Roundcube 并检查我是否可以从我的一个个人地址接收电子邮件(尝试使用 gmail 和 hotmail)。
然而,当我想要回复时,exim4 发送失败,并给出“没有到主机的路由”错误。
# cat /var/log/exim4/mainlog
exim 4.86_2 daemon started: pid=2310, -q30m, listening for SMTP on port 25 (IPv4) port 587 (IPv4) port 2525 (IPv4) and for SMTPS on port 465 (IPv4)
Start queue run: pid=2311
1iDCy2-00021u-SM H=gmail-smtp-in.l.google.com [172.217.197.27] No route to host
1iDD5o-0000bk-Gt <= [email protected] U=admin P=local S=795 [email protected]
1iDCy2-00021u-SM H=alt1.gmail-smtp-in.l.google.com [64.233.186.27] No route to host
1iDCy2-00021u-SM H=alt2.gmail-smtp-in.l.google.com [74.125.193.27] No route to host
[...]
1iDCy2-00021u-SM == [email protected] R=dnslookup T=remote_smtp defer (110): Connection timed out
1iDCzB-0002B3-PK ** [email protected]: Unrouteable address
1iDCzB-0002B3-PK Frozen (delivery error message)
1iDD8s-0000gq-H3 <= <> R=1iDD8s-0000go-GN U=Debian-exim P=local S=1211
我尝试对其中一个 IP 运行 tracepath,我发现它默认使用 GoDaddy 内部网络的接口,而不是具有 Internet IP 的接口:
# tracepath 172.217.218.27
1?: [LOCALHOST] pmtu 1500
1: 10.217.15.252 0.262ms
[...]
8: ash-b1-link.telia.net 54.953ms asymm 12
9: no reply
10: no reply
因此我尝试添加接口指令/etc/exim4/conf.d/transport/30_exim4-config_remote_smtp
,并重新启动 VPS。
remote_smtp:
debug_print = "T: remote_smtp for $local_part@$domain"
driver = smtp
interface = 148.72.xx.xx
但我仍然遇到相同的错误。我现在不知道该去哪里查找。
答案1
问题并不在我预期的地方,只是提供商 GoDaddy 要求我使用他们的中继服务器。我了解到,通过测试端口 25$ telnet portquiz.net 25
,令我大吃一惊的是,尽管没有任何连接,或者防火墙阻止它,但它无法连接。
修复:
这将使您的邮件通过 GoDaddy 的邮件服务器,但据我所知这是最简单的解决方案。我编辑了配置模板文件/etc/exim4/exim4.conf.template
,并更新了以下部分:
######################################################################
# ROUTERS CONFIGURATION #
# Specifies how addresses are handled #
######################################################################
begin routers
smarthost:
driver = manualroute
transport = remote_smtp
route_list = !+local_domains dedrelay.secureserver.net
然后我就跑了# dpkg-reconfigure exim4-config
再次(我不确定我当时输入的配置是否是唯一有效的配置,但对我来说有效):
- Internet site;
- System mail name: xxx.secureserver.net (find yours in GoDaddy's My Hosting > Server > YourVPS > Settings tab > Hostname)
- 127.0.0.1 ; ::1
- mydomain.com
- Domain to relay: empty
- Machines to relay: empty
- DNS dial on demand: no
- mbox
- Split config: no
当然,您可能已经在互联网上看到过一千次了,您可以使用以下方法测试配置:
echo "hello" | mail -s "Title" [email protected]
然而,电子邮件可能需要大约 5 分钟才能送达。要了解电子邮件是否得到正确处理,更快的方法是检查 GoDaddy 网站上服务器仪表板中的“SMTP 中继”计数器是否正在增加。