如何配置 exim4 以使用我自己的域名在 VPS 上发送和接收电子邮件?

How to configure exim4 to send & receive email on a VPS using my own domain name?

我刚买了一个新的 "public cloud" 来放置我的新网站。

这个public云在"advanced zone",也就是说我部署的每一个实例都在NAT网络中,私有IP(10.1.1.x),有防火墙在全局网络前面控制IN和OUT端口。

我用 Debian 8 部署了两个实例,一个用于网络服务器,另一个用于数据库。 我有自己的域名(假设为 "mydomain.com"),我希望我的网站能够使用该域名发送电子邮件(FROM 为 "no-reply@mydomain.com"),我希望接收由例如使用 Thunderbird 或 Outlook 的网站用户(联系@mydomain.com)。

Exim4 已经安装在网络服务器上(在 Debian 8 中默认安装),我使用 dpkg-reconfigure exim4-config 重新配置它。这是我的不同文件的内容。

/etc/exim4/update-exim4.conf.conf

dc_eximconfig_configtype='internet'
dc_other_hostnames='contact.mydomain.com'
dc_local_interfaces='127.0.0.1'
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost=''
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname=''
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'

/etc/hosts :

ROUTER_IP  mydomain.com    contact

/etc/hostname :

contact

/etc/email-addresses :

contact@mydomain.com

当我输入 hostname 时:联系
当我输入 hostname -d 时:com
当我输入 hostname -f 时:mydomain.com

在我的 DNS 中,我创建了一个 SPF 类型的区域以避免垃圾邮件。在这里:

TTL = 600 / Target = "v=spf1 a mx ptr ~all"

我尝试使用此命令发送电子邮件:

echo "This is a test." | mail -s Testing myownaddress@gmail.com

当我向 gmail 发送电子邮件时,我收到了来自 root (root@mydomain.com) 而不是 contact@mydomain.com

的电子邮件

当我向自己的个人地址发送电子邮件时,exim4 主日志中出现错误 /var/log/exim4/mainlog :

SMTP error from remote mail server after RCPT TO:<johnny@myserver.com>: host mail.myserver.com [37.xx.xx.Xx]: 504 5.5.2 <contact>: Helo command rejected: need fully-qualified hostname

我不明白我做错了什么。请问您对此有什么想法吗?

提前致谢!
此致,
朱利安 Q.

我决定使用 Postfix 并将我的主服务器用作 SMTP 中继。