1

我有一个由 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

4 回答 4

5

这是一个旧线程,但我想我会添加我的经验,以防他们帮助别人。

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

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

不用说,我已经改变了托管服务提供商!

于 2014-03-12T18:22:00.337 回答
3

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

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

如果你需要,我可以给你一个 PEAR 和 Authenticated mail 的例子。

于 2012-04-10T19:55:56.757 回答
1

您需要为 GoDadday 使用 PHP mail() 的默认变量,我不知道,但是当我使用您的代码段时,它也对我不起作用,但是通过使用标准变量,我收到了邮件;是的,不要将变量用于专用电子邮件地址,像我一样放入 mail() 函数,在此处输入图像描述

试试希望对你也有用;

$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";
于 2012-04-10T21:04:51.847 回答
0

所以我在godaddy豪华主机上使用php的邮件功能做了一些工作。它会发送到我的 gmail 帐户,但使用 Godaddy 上的域的实际电子邮件帐户从未发送过邮件。我必须相信有某种方法可以解决这些疯狂。如果您没有从 mail() 收到邮件,我的建议是尝试使用不同的电子邮件。我知道这会影响您对电子邮件发送位置的完美设置,但至少您会收到电子邮件。一旦您真正收到邮件,也许您可​​以使用转发技巧将邮件发送到您选择的收件箱。

于 2016-06-14T23:05:19.857 回答