以下是一种情况。
我们使用 Google 应用来收发电子邮件。我们的应用程序托管在另一台主机上,该应用程序负责发送电子邮件。该应用程序发送的电子邮件可以正常发送到除我们自己的电子邮件地址之外的所有电子邮件。
假设我们的域名是 example.com,电子邮件[电子邮件保护]没有被交付,但它们仅被本地存储在盒子上。
我们在部署应用程序的机器上使用 exim 作为邮件服务器。我们还设置了 dc_relay_domains。
可能缺少什么?我们如何确保发送到我们自己域名的电子邮件地址的电子邮件能够送达?
答案1
man update-exim4.conf
dc_other_hostnames
is used to build the local_domains list, together with "localhost". This is the list of domains
for which this machine should consider itself the final destination. The local_domains list ends
up in the macro MAIN_LOCAL_DOMAINS.
检查自动生成的 exim.conf 是否有类似以下内容:
dnslookup:
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more
这意味着如果 rcpt 地址中的域与 local_domains 不同,则邮件将通过远程交付(remote_smtp 传输)进行路由。如果不是,则邮件将发送到另一个路由器,某个路由器将接受它,在您的情况下,它最终进入本地交付传输。
很抱歉,但就您而言,您应该全力使用 Exim 并学习手动配置 Exim。update-exim4.conf 适用于典型情况。
答案2
听起来您的本地 exim 配置不正确,您的域名作为应被视为最终目的地的域(如前面的回复中所述)。如果您在 Debian 服务器上使用 exim,使用自动生成的配置,您应该使用以下命令重新配置:
dpkg-reconfigure exim4-config
并且(最好)指定没有本地邮件并使用智能主机发送,请参阅:
http://wiki.debian.org/GmailAndExim4
或者选择:
internet site; mail is sent and received directly using SMTP
并确保在被询问时你没有指定你自己的域:
Please enter a semicolon-separated list of recipient domains for which this machine
should consider itself the final destination. These domains are commonly called
'local domains'. The local hostname and 'localhost' are always added to the list
given here.
这里有一个替代方案,带有屏幕截图,它应该可以帮助您实现您的需要:
http://library.linode.com/email/exim/send-only-mta-debian-6-squeeze