如何配置 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 中继。
我刚买了一个新的 "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 中继。