我已经设置了一个Ubuntu服务器来托管Magento CE,除了发送电子邮件之外,它还可以正常工作。
电子邮件已发送,但我们的内部垃圾邮件过滤器(在运行Exclaimer的Win2k Exchange邮件服务器上)将其发送到外部世界。
我创建了一个测试网页,我可以看到它不只是Magento,它是用php mail()发送的任何邮件。
我正在使用postfix转发到我们的邮件服务器。
如果我使用telnet localhost 25发送测试电子邮件,那么我的电子邮件将通过正确的标头发送出去,只有通过PHP mail()发送,电子邮件没有正确的标题,如感叹号所选:< / p>
Received-SPF: pass (Exclaimer Mail Utilities: "this" network is always allowed.) client-ip=0.0.0.0; envelope-from=support@MYCOMPANY.co.uk; helo=;
X-ExAntiSpamFlags: LOCAL_IP IP_NO_PTR HELO_NOT_FQDN IP_PTR_NOT_FQDN SMTP_FROM_NOT_EQUAL_822_FROM SPF_PASS RECIPIENT_NOT_IN_AD
X-SPF-Result: 3
我已经看过这个Q&amp; A(php mail() Goes to spam but when sent via SMTP Server it works fine?),但是这种情况使用的是VPS而我不是。
我可以看到helo在“垃圾邮件”消息中设置为空,但不知道我应该在哪里设置PHP邮件的helo()。
我尝试将标题添加到我的php中,如下所示:
<?php
$headers .="Reply-To: OUR Sales <sales@MYCOMPANY.co.uk>\r\n";
$headers .="Return-Path: OUR Sales <sales@MYCOMPANY.co.uk>\r\n";
$headers .="From: OUR Sales <sales@MYCOMPANY.co.uk>\r\n";
$headers .="client-ip: 192.XXX.XXX.XXX\r\n";
$headers .="helo: UBUNTUSVR.MYCOMPANY.co.uk\r\n";
$headers .="hostname: UBUNTUSVR.MYCOMPANY.co.uk\r\n";
$headers .="Organization: Boxes from OURDirect\r\n";
$headers .="MIME-Version: 1.0\r\n";
$headers .="Content-type: text/plain; charset=iso-8859-1\r\n";
$headers .="X-priority: 3\r\n";
$headers .="X-Mailer: PHP". phpversion() ."\r\n";
echo mail("externalemail@hotmail.com","my subject","my message",$headers)
?>
这没有帮助!
我想我可以设置Exclaimer来允许来自Ubuntu盒子的电子邮件,但是我怀疑他们最终会被别人的垃圾邮件过滤器抓住,我宁愿正确发送电子邮件。
我在哪里进行更改,以便PHP mail()发送一封包含正确的helo和client-ip设置的电子邮件,因为我的计算机具有正确的FQDN并且没有使用telnet SMTP邮件的概率?