如何避免电子邮件头收到:从未知和电子邮件去垃圾邮件


how to avoid email header Received: from unknown and email going to spam

我尝试使用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)

列表头" received: 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);

Email config from 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

Received: from unknown只是表示一个SMTP服务器从另一个不提供反向DNS的SMTP服务器接收到它。通常,从一个SMTP服务器到另一个SMTP服务器的每一跳都会在消息的顶部添加一个Received:报头(qmail除外,它会添加两个;

如果你担心缺乏反向DNS,如果207.162.215.30是你的,那么也许你可以说服你的ISP为它提供反向DNS。许多isp拒绝(如果您使用的是"消费者"宽带计划),或者需要与您签订不同的托管合同才能提供此服务。("反向DNS"意味着当有人向DNS查询"207.162.215.30的DNS名称是什么"时,答案将是"searchboxindustries.com"或可能是另一个主机名,而不是"未知"。)

反向DNS查找通常基于TCP报头执行,而不是基于消息的文本。如果SMTP服务器接收到来自123.45.67.89的连接,那么它将为该地址执行反向DNS,并将结果放在它添加的Received:标头中。换句话说,您的邮件头或信封头的内容根本不影响此结果。

接收者可以对这些头做任何他们想做的事情。仅凭这个消息头(这个消息头的存在,或者从它的内容中明显没有反向DNS信息)不足以让某人将你的消息分类为垃圾邮件,但是真的没有办法控制收件人对这个信息做什么。

如果有的话,你的问题是一个迹象,也许你应该寻找一个专业的服务,代表你发送这些信息,收费

我的服务器需要一个额外的(php.)ini设置,可以解决您的问题吗?

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

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

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