由于某些原因,php mail()函数在我正在构建的网站上无法正常工作。我试图将问题排除在最简单的形式之外,并提出了这个文件:
<?php
mail('myEmail@gmail.com', 'the subject', 'the message', 'From: webmaster@example.com', '-fwebmaster@example.com');
?>
当myEmail是一个Gmail帐户时,我从未接收过该消息。但是,当我使用非Gmail帐户时,我确实收到了消息。我不知所措,并尝试了一切来解决这个问题。我开始认为这是一个不起眼的主机/服务器问题。您可以在此处查看服务器规格:http://aopmfg.com/php.php
有什么想法吗?
编辑 - 我还要补充一点,这是几周前,我最后一次测试时都运行良好。从那以后,没有重大的代码更改。
编辑2 - 阅读类似的帖子后,我尝试添加From和Reply-To标题...仍然没有运气。新代码:
<?
$headers = 'From: <some@email.com>' . "\r\n" .
'Reply-To: <some@email.com>';
mail('<myEmail@gmail.com>', 'the subject', 'the message', $headers,
'-fwebmaster@example.com');
?>
答案 0 :(得分:8)
事实证明,谷歌阻止了我的服务器,因为同一台服务器上的另一个网站被黑客攻击并用于垃圾邮件。
为了测试并确保服务器出现问题,我创建了一个简单的PHP文件,可以在页面刷新时向我的电子邮件地址发送电子邮件。它在我发送到基于交换的电子邮件地址时起作用,但不适用于任何与Google相关的帐户。
代码:
$headers = 'From: <test@test.com>' . "\r\n" .
'Reply-To: <test@test.com>';
mail('<myEmail@gmail.com>', 'the subject', 'the message', $headers,
'-fwebmaster@example.com');
?>
感谢所有人的帮助。
答案 1 :(得分:1)
尝试将&lt;&gt;放入围绕From和回复地址。我在工作电子邮件中遇到了同样的问题。
答案 2 :(得分:1)
我遇到了与gmail类似的问题。但我的标题是“看看你是否赢了”。当我把它变成一个不那么营销/垃圾邮件的东西时,它就出现了。所以它并不总是导致这个问题的PHP代码,但它也可能是被列入黑名单的主题标题。
答案 3 :(得分:0)
我遇到了同样的问题。但是当我检查了我的C:\ xampp \ mailoutput文件夹时,发送的邮件已在此文件夹中收到。现在请检查并做必要的事情。它是在我的测试本地服务器中发送的。如果它是在真实服务器上发送的,那可能在您的托管服务器上,您必须通过站点主机检查
答案 4 :(得分:0)
我发现将SPF和DKIM记录添加到DNS中可以解决此问题。我可以使用phpmail()函数发送到Gmail订阅者列表。
更新记录后,邮件将传递到Gmail,Yahoo和AOL地址。
在此处阅读源代码。 ABOMB发表的评论
答案 5 :(得分:0)
我遇到了同样的问题。我使用 BCC 电子邮件地址来记录发送的消息。这是一个优势,好像 gmail 或 hotmail 阻止了邮件,然后密件抄送也被阻止了。 我创建了一个 SPF 记录,但它本身并没有帮助,尽管这可能是一个好主意。 似乎对我有帮助的是将电子邮件地址放在 <> 中并在标题中添加对条目的回复。
$headers = 'From: <test@test.com>' . "\r\n" .
'BCC: <fred@test.com>' . "\r\n" .
'Reply-To: <test@test.com>';
mail('<myEmail@gmail.com>', 'the subject', 'the message', $headers);