PHP的mail()函数在GoDaddy专用服务器上不起作用

时间:2012-04-10 19:51:09

标签: php email

我有一个由GoDaddy在虚拟专用平台上托管的网站,我无法让mail()功能在我的PHP脚本中正常工作。我正在尝试向用户首次注册我的网站时发送带有验证码的电子邮件,而mail()功能非常适合Gmail地址,但不适用于其他人,例如AOL甚至是GoDaddy的电子邮件服务!

我尝试与多个GoDaddy支持代表交谈,但他们在这个问题上并没有真正帮助。我在网上看了看,这似乎是在GoDaddy上托管他们网站的人们非常普遍的问题。当电子邮件发生故障时,我没有收到电子邮件的反弹,因此很难知道发生了什么。

这是我的PHP代码:

$sendtoemail  = 'newsignup@aol.com';
$emailsubject = "Please validate your email";
$emailbody    = "Validation info, blah blah.";
$emailheader  = 'From: admin@example.com' . "\r\n" . 
                'X-Mailer: PHP' . "\r\n" . 
                'Reply-To: admin@example.com' . "\r\n" . 
                '-fadmin@example.com'; 
mail($sendtoemail, $emailsubject, $emailbody, $emailheader);

当我检查/usr/local/psa/var/log/maillog(通过PuTTY SSH访问)时,我发现了一些错误:deferral: ./Maildir:_No_such_file_or_directory/

我还在我的托管帐户上激活了反向DNS并创建了一个SPF DNS记录,该记录通过“仅限GoDaddy”发送电子邮件并选中“包含PTR”框以进行DNS查找。这是在GoDaddy的DNS管理器的“区域文件编辑器”的“TXT(文本)”部分下。 (希望这对你来说比对我更有意义。)

4 个答案:

答案 0 :(得分:5)

这是一个老话题,但我想我会在他们帮助别人的情况下添加我的经验。

我遇到了与mail()非常相似的问题,我调用了GoDaddy的技术服务。我在电话上打了2个小时,经过30个左右的测试电话()(他们甚至上传了自己的'testmail'脚本),我没有成功收到一封电子邮件(虽然mail()返回的值为1 ,即成功)。最终的结果是他告诉我,电子邮件服务器中继是“排队”的。两个小时后,一个技术支持人员和他的“系统管理员”......仍然是同样的问题。

解决方案是使用php库swiftmailer而不是普通的旧mail()函数。使用swiftmailer立即发送电子邮件。希望这有助于其他人!

毋庸置疑,我已经改变了托管服务提供商!

答案 1 :(得分:3)

我不确定GoDaddy是否支持PHP Mail,这对于网络托管公司来说通常是一个大问题,因为它在脚本中用于发送垃圾邮件。

最好的办法是检查GoDaddy在主机上有什么PEAR扩展,如果他们有PEAR邮件,你可以使用它。如果没有,那么您应该尝试使用经过身份验证的邮件发送。

如果需要,我可以举例说明PEAR和Authenticated邮件。

答案 2 :(得分:1)

你需要为GoDadday使用PHP mail()的默认变量,我不知道但是当我使用你的代码片段它也不适合我,但是通过使用标准变量,我得到了邮件;并且是的,不要将变量用于专用的电子邮件地址,像我一样放入mail()函数,enter image description here

尝试希望也适合你;

$subject = "Please validate your email";
$message   = "Validation info, blah blah. 2nd msg";
$Header = 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$Header .= 'From: Lux <info@luxstyles.com >' . "\r\n";

if(mail('info@luxstyles.com', $subject, $message, $Header))

echo "email sent";

else 

echo "email sending fail";

答案 3 :(得分:0)

所以我在godaddy deluxe主机上使用php的邮件功能做了一些工作。它将发送到我的Gmail帐户,但是使用域名的实际电子邮件帐户,该邮件在godaddy上,邮件从未成功。我不得不相信疯狂有某种方法。如果你没有从邮件()收到邮件,我的建议是尝试不同的电子邮件。我知道这可以帮助您完美地设置电子邮件的位置,但至少可以收到电子邮件。一旦您真正收到邮件,也许您可​​以使用转发技巧将邮件放入您选择的收件箱中。