如何避免电子邮件头部出现“Received: from unknown”并且避免邮件进入垃圾邮件箱。

6

我尝试使用php和Zend_Mail从我们的服务器发送电子邮件。我使用smtp传输。这是确认订阅的电子邮件。但出于某种原因,我发送的电子邮件具有奇怪的标头,并且电子邮件会进入垃圾邮件文件夹(我在接收信件的Gmail中看到它们):

 Message-Id: <50ee94f7.84fc440a.62dc.ffff9685SMTPIN_ADDED_MISSING@mx.google.com>
    Received: (qmail 10943 invoked from network); 10 Jan 2013 10:16:22 -0000
    Received: from unknown (HELO searchboxindustries.com)  (username@searchboxindustries.com@207.162.215.30)

"Recieved: from unknown" 列表头的含义是什么?它会让电子邮件进入垃圾邮件吗?如何避免这个奇怪的头部并使电子邮件避免垃圾邮件文件夹?代码有问题还是我的域名DNS设置存在问题?

以下是设置标头的代码:

$mailer->setFrom($params['list_email'], $params['list_from_name']);
$mailer->setReplyTo($params['list_email']);

$mailer->addHeader('Sender', $params['list_email'] . '.searchboxindustries.com');                       
$mailer->setReturnPath($params['list_email'] . '.searchboxindustries.com');         

$mailer->addTo($params['email_address']);

配置传输的代码:

$emailConfig = $this->getOption('email');                                   
        $transport = new Zend_Mail_Transport_Smtp($emailConfig['server'], $emailConfig);
Zend_Mail::setDefaultTransport($transport);

从 application.ini 配置邮件:

   email.name  = searchboxindustries.com
   email.server = searchboxindustries.com
   email.username = user_name
   email.password = password
   email.auth = plain
   email.port = 587

以下是这封电子邮件的标题:

这里是这封电子邮件的标题:

Delivered-To: gala19612009@gmail.com
Received: by 10.76.94.204 with SMTP id de12csp111150oab;
        Fri, 11 Jan 2013 01:58:49 -0800 (PST)
X-Received: by 10.69.0.8 with SMTP id au8mr228881813pbd.58.1357898329423;
        Fri, 11 Jan 2013 01:58:49 -0800 (PST)
Return-Path: <opp@mail15.com.searchboxindustries.com>
Received: from smtp1-1.searchboxindustries.com (mta1.searchboxindustries.com. [207.162.215.30])
        by mx.google.com with SMTP id d7si4727205paw.95.2013.01.11.01.58.48;
        Fri, 11 Jan 2013 01:58:48 -0800 (PST)
Received-SPF: pass (google.com: domain of opp@mail15.com.searchboxindustries.com designates 207.162.215.30 as permitted sender) client-ip=207.162.215.30;
Authentication-Results: mx.google.com;
       spf=pass (google.com: domain of opp@mail15.com.searchboxindustries.com designates 207.162.215.30 as permitted sender) smtp.mail=opp@mail15.com.searchboxindustries.com
Message-Id: <50efe258.a74b420a.3351.12fcSMTPIN_ADDED_MISSING@mx.google.com>
Received: (qmail 21583 invoked from network); 11 Jan 2013 09:58:48 -0000
Received: from unknown (HELO searchboxindustries.com) (username@searchboxindustries.com@207.162.215.30)
  by searchboxindustries.com with SMTP; 11 Jan 2013 09:58:48 -0000
From: Oleg <opp@mail15.com>
Reply-To: opp@mail15.com
Sender: opp@mail15.com.searchboxindustries.com
Return-Path: opp@mail15.com.searchboxindustries.com
To: gala19612009@gmail.com
Subject: List1: Confirm Subscription
Date: Fri, 11 Jan 2013 04:58:48 -0500
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
MIME-Version: 1.0

Spf似乎没问题。

发送电子邮件的IP未被列入黑名单。

现在DNS发生了变化,我有一些标题:

Message-Id: <50f41c80.67e3440a.2d32.6aabSMTPIN_ADDED_MISSING@mx.google.com>
Received: (qmail 18457 invoked from network); 14 Jan 2013 14:55:59 -0000
Received: from unknown (HELO smtp1-1.searchboxindustries.com) (username@searchboxindustries.com@207.162.215.30)
  by searchboxindustries.com with SMTP; 14 Jan 2013 14:55:59 -0000

我们设置了反向DNS。207.162.215.30被解析为stmp1.searchboxindustries.com。那么问题出在哪里呢?我想知道头部信息中方括号内的奇怪格式是什么意思。
 username@searchboxindustries.com@207.162.215.30

你有关于垃圾邮件过滤器的详细信息吗?通常可以设置接收服务器以输出触发了哪些垃圾邮件规则。 - Stan
不,我没有任何垃圾邮件过滤器的解决方案,在 Gmail 中我可以看到邮件头。 - Oleg
如果不知道哪部分消息被视为可疑,那么删除垃圾邮件解决方案就很难了。至于“未知”,我发现当收件人无法使用反向DNS检查您的SMTP服务器IP时,就会出现此问题:无法从“(username@searchboxindustries.com@207.162.215.30)”中提取IP,或者可能发现反向DNS的域“mta1.searchboxindustries.com”与“searchboxindustries.com”不相等。我对此不太确定。 - Stan
请问DNS与未知问题有关,请告诉我具体情况。 - Oleg
我的建议不是为了删除“未知”标题,而是作为消除垃圾邮件的可能手段。因此,请再次检查它是否有帮助。我们不能认为“未知”是您的邮件“垃圾”的原因。 - Stan
显示剩余6条评论
3个回答

3
Received: from unknown的意思是一个SMTP服务器从另一个没有提供反向DNS的SMTP服务器接收了该邮件。通常,每个SMTP服务器之间的跳跃都会在消息顶部添加一个Received:头(除了qmail,它会添加两个;这在您的示例中可见)。
如果您担心缺少反向DNS,并且207.162.215.30是您的IP地址,则可以尝试说服您的ISP为其提供反向DNS。许多ISP会拒绝(如果您使用的是“消费者”宽带计划),或者需要与您签订不同的托管合同才能提供此服务。(“反向DNS”意味着当某人查询“207.162.215.30的DNS名称是什么”时,答案将是“searchboxindustries.com”或可能是另一个主机名,但不是“unknown”。)
反向DNS查找通常是基于TCP头执行的,而不是消息文本。如果SMTP服务器从123.45.67.89接收连接,则会对该地址执行反向DNS,并将结果放入其添加的Received:头中。换句话说,您的消息头或信封头的内容根本不会影响此结果。
收件人可以随意处理这些头信息。仅凭此头信息(有此头信息的存在或从其中的内容推断出缺少反向DNS信息)不太可能足以使某人将您的消息分类为垃圾邮件,但是无法控制收件人对此信息的处理方式。
如果有什么问题,您应该考虑使用专业服务代表您发送这些消息,需要支付费用。

但我们有反向DNS:207.162.215.30被解析为smtp1-1.searchboxindustries.com。那问题是什么呢?它仍然显示:Received: from unknown (HELO smtp1-1.searchboxindustries.com) (username@searchboxindustries.com@207.162.215.30) by searchboxindustries.com with SMTP; 15 Jan 2013 11:08:08 -0000 - Oleg
那我不知道。可能是服务器无法访问DNS,或者根本没有配置进行DNS查找(即对所有服务器都放置“未知”),通常是出于性能原因。从外观上看,这是您自己的服务器;如果您不是管理员,请与管理员联系。 - tripleee
请问您能否告诉我如何配置SMTP服务器以避免使用DNS查找?我不知道它可以忽略DNS查找并始终使用未知。 - Oleg
请问您能解释一下这个设置在哪里吗? - Oleg
1
这已经偏离了StackOverflow的主题。请在一个允许进行电子邮件配置讨论的论坛上发布后续问题,并提供有关邮件服务器软件版本和平台的必要详细信息。 - tripleee

0

我的服务器需要额外的(php.)ini设置,这可能会解决你的问题吗?

ini_set('sendmail_from', 'enterAValidEmailAddr@yourDomainHere');

我使用SMTP,我不了解你的意思。我发布了电子邮件的标题和代码,请问你能否解释一下? - Oleg
我不熟悉Zend_Mail,因此我使用默认的mail()函数来发送电子邮件,所以恐怕我无法帮助您将我的建议翻译成Zend_Mail。也许熟悉这个类的人可以为您提供帮助。 - inhan
我不确定这个问题是否与zend_mail有关。 - Oleg

0

尝试以下选项以找到问题所在:

  1. 邮件是否有正文?我相信有邮件正文。
  2. 为了隔离问题,您可以尝试使用另一种备选 SMTP(例如:gmail smtp)。
  3. 或者,您可以直接使用 PHP 邮件而不是 SMTP。

我不明白你的意思。你能具体一点吗?是的,我有邮件正文,是确认邮件。 - Oleg
我不需要备用的SMTP服务器,因为我使用我们的SMTP服务器。你能更具体一些吗? - Oleg
你可以尝试使用另一个SMTP服务器进行测试,而不是使用现有的SMTP服务器,以测试你的SMTP服务器是否正常工作。 - Wasim
我不需要其他SMTP服务器,有一个具体的服务器,关于头部和代码的信息。你能告诉我问题在哪里以及如何解决吗? - Oleg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接