我有一台可通过域名 mydomain.com 访问的服务器。此域名的邮件服务器(发送和接收)是 mail.provider.com。由于我必须从我的网站发送新闻稿,而提供商不允许使用其邮件服务器发送新闻稿,因此提供商授权我的服务器发送邮件(SPF 条目)。
因此我将 Exim4 配置为仅接受来自本地主机的连接。为了获得正确的“EHLO mydomain.com”,我必须更改 /etc/hosts 和 /etc/hostname,以便我的服务器具有主机名 mydomain.com
通过此配置,我可以毫无问题地向所有大型邮件提供商发送邮件。但是,我无法从服务器向任何 @mydomain.com 地址发送邮件。
Mainlog 说:
2011-09-10 16:33:41 1R2Ocn-0001Ba-QD <= [email protected] U=user P=local S=991
2011-09-10 16:33:41 1R2Ocn-0001Ba-QD ** [email protected]: Unrouteable address
2011-09-10 16:33:41 1R2Ocn-0001Bc-Qr <= <> R=1R2Ocn-0001Ba-QD U=Debian-exim P=local S=1758
2011-09-10 16:33:41 1R2Ocn-0001Bc-Qr ** [email protected]: Unrouteable address
2011-09-10 16:33:41 1R2Ocn-0001Bc-Qr Frozen (delivery error message)
2011-09-10 16:33:41 1R2Ocn-0001Ba-QD Completed
因此,更改 /etc/hosts 和 /etc/hostname 似乎不是正确的解决方案。
我认为最好的解决方案是在 /etc/exim4/exim4.conf.template 中对 EHLO 数据进行硬编码,已经使用以下几行尝试过:
REMOTE_SMTP_HELO_DATA=mydomain.com
=> “EHLO vadmin123”而不是“EHLO mydomain.com”
PRIMARY_HOST_NAME = mydomain.com
MAIN_HARDCODE_PRIMARY_HOSTNAME = mydomain.com
=> “EHLO vadmin123”而不是“EHLO mydomain.com”
我错过了什么?
答案1
我不明白为什么,但当我改变
remote_smtp:
debug_print = "T: remote_smtp for $local_part@$domain"
driver = smtp
.ifdef REMOTE_SMTP_HOSTS_AVOID_TLS
hosts_avoid_tls = REMOTE_SMTP_HOSTS_AVOID_TLS
.endif
.ifdef REMOTE_SMTP_HEADERS_REWRITE
headers_rewrite = REMOTE_SMTP_HEADERS_REWRITE
.endif
.ifdef REMOTE_SMTP_RETURN_PATH
return_path = REMOTE_SMTP_RETURN_PATH
.endif
.ifdef REMOTE_SMTP_HELO_FROM_DNS
helo_data = mydomain.ocm
.endif
到
remote_smtp:
debug_print = "T: remote_smtp for $local_part@$domain"
driver = smtp
.ifdef REMOTE_SMTP_HOSTS_AVOID_TLS
hosts_avoid_tls = REMOTE_SMTP_HOSTS_AVOID_TLS
.endif
.ifdef REMOTE_SMTP_HEADERS_REWRITE
headers_rewrite = REMOTE_SMTP_HEADERS_REWRITE
.endif
.ifdef REMOTE_SMTP_RETURN_PATH
return_path = REMOTE_SMTP_RETURN_PATH
.endif
.ifdef REMOTE_SMTP_HELO_FROM_DNS
helo_data = mydomain.ocm
.endif