我前段时间问过一个问题使用自定义发件人:字段发送电子邮件 但是,仍然无法让 exim4 运行。它确实发送电子邮件,但无法接收任何电子邮件。我很确定这可能是由于邮件服务器名称和 MX 配置造成的。
在我的控制面板中,我可以设置 MX 的首选项、TTL 和邮件服务器值。我将前两个保留为默认值(0, 6400),并将邮件服务器设置为“url.com”(我用“url”名称替换了我的域名)。
但是当我给自己发送电子邮件时,我得到:
Unroutable address
在主日志中。当我从 Linux 控制台“host -t mx url.com”运行时,我得到:
;; connection timed out; no servers could be reached
我的MX好像一点效果都没有?我该怎么做才能让它发挥作用?
我对这个主题非常菜鸟,甚至不确定“邮件服务器”指的是什么?这是我通过命令“host”获得的名称,或者可能是“host -f”,或者可能是“host -i”,或者甚至可能是其他名称?我真的很困惑。 :/
这是 /etc/exim4/update-exim4.conf.conf 内容:
# /etc/exim4/update-exim4.conf.conf
#
# Edit this file and /etc/mailname by hand and execute update-exim4.conf
# yourself or use 'dpkg-reconfigure exim4-config'
#
# Please note that this is _not_ a dpkg-conffile and that automatic changes
# to this file might happen. The code handling this will honor your local
# changes, so this is usually fine, but will break local schemes that mess
# around with multiple versions of the file.
#
# update-exim4.conf uses this file to determine variable values to generate
# exim configuration macros for the configuration file.
#
# Most settings found in here do have corresponding questions in the
# Debconf configuration, but not all of them.
#
# This is a Debian specific file
dc_eximconfig_configtype='internet'
dc_other_hostnames='url.com; mail.url.com; url; localhost; localhost.localdomain'
dc_local_interfaces='127.0.0.1; my_ip'
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost=''
CFILEMODE='644'
dc_use_split_config='true'
dc_hide_mailname=''
dc_mailname_in_oh='true'
dc_localdelivery='maildir_home'
无论如何,我将我的域名替换为 url,将 ip 替换为 my_ip。
/etc/email-addresses 非常短:
root: [email protected]
和 /etc/mailname
url.com
更新:当我在 Windows 上执行此操作时:
nslookup -type=mx url.com
我得到类似的东西:
Server: UnKnown
Address: probably_my_internet_provider's_gate_ip
Non-authoritative answer
url.com MX preference = 0, mail exchanger = url.com
更新2: 现在我真的很困惑。我尝试运行“dig mx url.com”和“host -t mx url.com”另一个邮件 Linux 服务器(不是我的),似乎没问题,例如最后一个结果是:
url.com mail is handled by 0 url.com
但是我的电子邮件在哪里?我在 ~/Maildir 中看不到任何内容。当我运行“mail”时,我收到消息“没有 root 的邮件”。那么它有效,还是无效……或者什么?
更新 3:这是路由问题吗? 现在我可以看到,当我尝试从以下地址发送电子邮件时[电子邮件受保护],它会失败并显示以下消息:
“无法路由的地址”
关于[电子邮件受保护]地址(因此它不是目标“TO”地址,而是“FROM”地址)。它以前没有发生过(比如说一个月前),所以我可能搞乱了一些配置。 :/
当我这样做时,正如一些网络教程的建议:
exim4 -d -bt mail
我明白了很多不同的“路由器”(我什至不确定我是否正确理解它们,尽管我已经阅读了 exim4 文档中的一节),具体来说:
- hubbed_hosts 路由器(“路由器跳过:域不匹配”)
- dnslookup_relay_to_domains 路由器(“路由器已跳过:域不匹配”)
- dnslookup 路由器(“路由器已跳过:域不匹配”)
- real_local 路由器(“跳过路由器:前缀不匹配”)
- system_aliases 路由器(“system_aliases 路由器拒绝[电子邮件受保护]”)
- userforward router(“跳过路由器:文件检查”)
- procmail 路由器(“路由器跳过:文件检查”)
- maildrop 路由器(“路由器跳过:文件检查”)
- lowuid_aliases router(“路由器跳过:条件失败”)
- local_user 路由器(见下文):
最后一篇以相当长的响应结束:
--------> local_user router <--------
local_part=mail domain=url.com
checking domains
cached yes match for +local_domains
cached lookup data = NULL
url.com in "+local_domains"? yes (matched "+local_domains" - cached)
checking local_parts
mail in "! root"? yes (end of list)
checking for local user
seeking password data for user "mail": using cached result
getpwnam() succeeded uid=8 gid=8
R: local_user for [email protected]
calling local_user router
local_user router called for [email protected]
domain = url.com
set transport maildir_home
queued for maildir_home transport: local_part = mail
domain = url.com
errors_to=NULL
domain_data=NULL localpart_data=NULL
routed by local_user router
envelope to: [email protected]
transport: maildir_home
[email protected]
router = local_user, transport = maildir_home
search_tidyup called
>>>>>>>>>>>>>>>> Exim pid=31821 terminating with rc=0 >>>>>>>>>>>>>>>>
我现在想知道,为什么它使用“[电子邮件受保护]“, 不是 ”[电子邮件受保护]“这里?这正常吗?
最重要的是:在我的情况下,即当我尝试使用(现在)“邮件”命令从命令行向外部电子邮件地址发送消息时,我应该对哪一个路由器感兴趣?
答案1
解决了。感谢您的所有建议。问题与名称服务器有关,毕竟它们现在可以正确解析名称。