我正在尝试整理邮件列表系统。我理解所需的基本原则和设计,但我遇到的问题是它被当作垃圾邮件。
如果我通过outlook发送html电子邮件,请发送电子邮件至email@domain.com,它可以正常工作,不会被视为垃圾邮件。当我使用Zend_mail对象发送它发送的邮件但在我发送的测试电子邮件帐户上被视为垃圾邮件。
这是我用来发送电子邮件的代码。
//send an email
$mail = new Zend_Mail();
$config = array('auth' => 'login','username' => 'email@domain.com','password' => 'mypassword');
$transport = new Zend_Mail_Transport_Smtp('mail.domain.com', $config);
$mail->setSubject($item->title);
$mail->setFrom("email@domain.com");
$mail->addTo($item->email, $item->forename);
//$mail->setBodyText($item->contentPlain);
$mail->setBodyHtml($item->contentHTML);
$mail->send($transport);
正如您所见,即时通讯使用smtp传输对象进行身份验证,但它似乎仍将此视为垃圾邮件。任何有指针或提示的人都非常感激!!
来自被视为垃圾邮件的电子邮件的标头信息:
它似乎在标题信息中包含几个客户端域名,我主持人们的任何想法为什么会是这种情况?我使用共享的IP地址,其上有大约10个域
Received: (qmail 1436 invoked from network); 14 Aug 2009 16:02:10 +0100
Received: from clientdomain1.co.uk (HELO localhost) (91.192.***.196)
by clientdomain2.info with SMTP; 14 Aug 2009 16:02:10 +0100
Subject: Manchester 2 Day Seminar: Dealing with difficult people
From: events@domain.com
To: Andi <subscriber1@domain.com>
Date: Fri, 14 Aug 2009 15:02:10 +0000
Content-Type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
MIME-Version: 1.0
答案 0 :(得分:2)
“滚动自己的邮件”通常被大型托管电子邮件系统视为垃圾邮件。当您使用付费服务发送大量电子邮件时,您正在为这些公司与主要电子邮件供应商签订的协议付款,以使其保持白名单。
但是,您可以做的一件事是确保您发送的帐户存在,并且电子邮件是从匹配的域发送的(例如,从foo.com的smtp服务器发送的@ foo.com)。这是垃圾邮件过滤器的一个大红旗。
答案 1 :(得分:0)
比较outlook中的电子邮件和电子邮件。是否缺少任何标头?哪一个?它们看起来很重要吗?
答案 2 :(得分:0)
试试这个去除最后一个localhost引用:
$protocol = new Zend_Mail_Protocol_Smtp('localhost');
$protocol->connect();
$protocol->helo('mail.yourserver.com'); //**DO THIS**
$transport->setConnection($protocol);