我有一个运行 Ubuntu 14.04 的 DigitalOcean 服务器。我在从 PHPmail()
函数(内部使用)发送电子邮件时遇到问题sendmail
。
我认为这个问题可能与我的hosts
文件配置有关。这是我/etc/hosts
目前所拥有的:
127.0.0.1 localhost localhost.localdomain ip-xxx-xxx-xxx-xxx
并在etc/hostname
:
ip-xxx-xxx-xxx-xxx
(上面两个中,我将IP地址数字替换为x
)
现在我有一个指向该服务器的域,我们称之为mydomain.com
.
因此,当我的网站mydomain.com
发送电子邮件时,该电子邮件将进入垃圾邮件文件夹。我进行了测试https://www.mail-tester.com它指出的问题之一是:
我尝试添加mydomain.com
到文件中的上面一行hosts
,但这会导致电子邮件在很长时间后到达或根本没有到达。
以下是收到的标头:
Received: from localhost.localdomain (unknown [xxx.xxx.xxx.xxx])
(using TLSv1.2 with cipher xxx (256/256 bits))
(No client certificate requested)
by mail-tester.com (Postfix) with ESMTPS id xxx
for <[email protected]>; Mon, 29 Apr 2019 18:35:18 +0200 (CEST)
Received: from localhost.localdomain (localhost [127.0.0.1])
by localhost.localdomain (8.15.2/8.15.2/Debian-3) with ESMTP id xxx
for <[email protected]>; Mon, 29 Apr 2019 17:35:18 +0100
Received: from mydomain.com (www-data@localhost)
by localhost.localdomain (8.15.2/8.15.2/Submit) with SMTP id xxx
for <[email protected]>; Mon, 29 Apr 2019 17:35:18 +0100
怎么修?
答案1
当通过 SMTP 发送邮件时,连接服务器通过 HELO 命令识别自身。看https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol#SMTP_transport_example
您需要在 smtp 客户端的配置设置中更改此设置。具体来说sendmail
,这里有一个例子:https://serverfault.com/questions/205271/how-to-specify-outgoing-helo-with-sendmail