我正在使用以下代码发送无论何时注册的电子邮件。
$recmail = 'saket.mishra@atlascorps.org'; // address you want the form mailed to
$sub = "Atlas Corps Questionnaire"; //subject of email that is sent
$mess = "Hello, Please fill a questionnaire at following link. ";
$headers = "From: Atlas Corps Family Tree < info@atlascorps.org > \n" .
"MIME-Version: 1.0\n" .
"Content-type: text/html; charset=iso-8859-1";
mail($recmail,$sub,$mess,$headers);
我的saket.mishra@atlascorps.org是一个有效的Gmail帐户。 但我在这里没有收到任何电子邮件。 我已经正确检查了我所有的gmail设置。 不应用转发和过滤。
我的其他Gmail帐户:saket.me@gmail.com 是通过本网站接收所有电子邮件。
请提供帮助,因为我的所有客户都会在Gmail上拥有 @ atlascorps.org 电子邮件帐户。
在服务器的电子邮件日志中,有以下消息
Return-path: <>
Envelope-to: atlascorpsadmin@p3plcpnl0096.prod.phx3.secureserver.net
Delivery-date: Tue, 23 Sep 2014 08:56:11 -0700
Received: from mailnull by p3plcpnl0096.prod.phx3.secureserver.net with local (Exim 4.82)
id 1XWSRn-0003Fc-2A
for atlascorpsadmin@p3plcpnl0096.prod.phx3.secureserver.net; Tue, 23 Sep 2014 08:56:11 -0700
X-Failed-Recipients: saket.mishra@atlascorps.org
Auto-Submitted: auto-replied
From: Mail Delivery System <Mailer-Daemon@p3plcpnl0096.prod.phx3.secureserver.net>
To: atlascorpsadmin@p3plcpnl0096.prod.phx3.secureserver.net
Subject: Mail delivery failed: returning message to sender
Message-Id: <E1XWSRn-0003Fc-2A@p3plcpnl0096.prod.phx3.secureserver.net>
Date: Tue, 23 Sep 2014 08:56:11 -0700
This message was created automatically by mail delivery software.
A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:
saket.mishra@atlascorps.org
------ This is a copy of the message, including all the headers. ------
Return-path: <atlascorpsadmin@p3plcpnl0096.prod.phx3.secureserver.net>
Received: from atlascorpsadmin by p3plcpnl0096.prod.phx3.secureserver.net with local (Exim 4.82)
(envelope-from <atlascorpsadmin@p3plcpnl0096.prod.phx3.secureserver.net>)
id 1XWSRm-0003FX-Vo
for saket.mishra@atlascorps.org; Tue, 23 Sep 2014 08:56:11 -0700
To: saket.mishra@atlascorps.org
Subject: Atlas Corps Questionnaire
X-PHP-Script: atlascorps.org/globe/send_link.php for 122.176.7.34
X-PHP-Originating-Script: 209330:send_link.php
From: Atlas Corps Family Tree < info@atlascorps.org >
MIME-Version: 1.0
Content-type: text/html; charset=iso-8859-1
Message-Id: <E1XWSRm-0003FX-Vo@p3plcpnl0096.prod.phx3.secureserver.net>
Hello
答案 0 :(得分:1)
我建议您查看DNS设置,主要是您的SPF记录。如果您使用SPF checks的kitterman工具,则会发现您的SPF
记录似乎无效:
Input accepted, querying now...
evaluating v=spf1 a mx ptr include:secureserver.net ~all ...
Results - PermError SPF Permanent Error: Too many DNS lookups
我的猜测是谷歌有时无法解析所有secureserver.net
条记录,因此它会反弹一些消息。而不是include:secureserver.net
尝试删除它并设置指向您的服务器的MX
记录。 SPF
记录设置为允许所有MX
条记录发送电子邮件,因此应该可以正常工作。
另外,我建议使用诸如SwiftMailer之类的邮件程序库,它比默认的php mailer
函数更容易维护和调试。这是一个片段代码,可以帮助您领先一步:
require_once '/path/to/swift-mailer/lib/swift_init.php';
// Create the message
// http://swiftmailer.org/docs/messages.html
$message = Swift_Message::newInstance();
$message->setFrom('info@atlascorps.org', 'Atlas Corps Family Tree');
$message->setTo('saket.mishra@atlascorps.org');
$message->setContentType('text/html');
$message->setCharset('iso-8850-1');
$message->setSubject('Atlas Corps Questionnaire');
$message->setBody('<html><head></head><body>Hello, Please fill a questionnaire at following <a href="http://domain.com/link.php?time='.time().'">link</a>.</body></html>');
// Create the Transport
// http://swiftmailer.org/docs/sending.html#the-smtp-transport
$transport = Swift_SmtpTransport::newInstance('localhost', 25);
// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);
$mailer->send($message);
希望这有帮助。
答案 1 :(得分:1)
您的邮件服务器(exim)将包含日志文件,可能位于/var/log/mail/log
或附近,这将提供有关您的送货失败原因的更多详细信息。不幸的是,您发布的退回信息并不包含任何有用的信息。
扩展tftd的答案:
10个查找中的{p> RFC4408 imposes a limit个。对SPF查找计数here进行了很好的分析。 SPF中的杀手条款为mx
,因为它列出了5个邮件服务器。 secureserver.net的SPF记录只包含ip4子句,因此不会产生任何额外的查找。在SPF中,您真的不需要ptr
(并且您无论如何都没有DNS条目),这样可以保存查询,因为您的a
记录是只有一个IP,最好先明确列出。我建议您将SPF更改为最小化查找次数:
v=spf1 ip4:192.186.207.194 include:secureserver.net mx a ~all
我已将a
留在那里,以防您更改IP并忘记更新此记录...
所有这一切,这并不一定意味着您的SPF阻止了交付,因为邮件服务器会在找到匹配时停止检查SPF条目,如果它与您的某个MX相匹配在查找限制之前。