PHP mail()函数不会发送到gmail,但会发送到我的非gmail帐户

PHP mail()函数不会发送到gmail,但会发送到我的非gmail帐户,php,email,Php,Email,由于某些原因,php邮件功能在我正在构建的站点上无法正常工作。我试图以最简单的形式解决该问题,并提出了以下文件: <?php mail('myEmail@gmail.com', 'the subject', 'the message', 'From: webmaster@example.com', '-fwebmaster@example.com'); ?> 当myEmail是Gmail帐户时,我从未收到过该邮件。然而,当我使用非gmail帐户时,我确实会收到消息。我不知所措,想尽

由于某些原因,php邮件功能在我正在构建的站点上无法正常工作。我试图以最简单的形式解决该问题,并提出了以下文件:

<?php
mail('myEmail@gmail.com', 'the subject', 'the message', 'From: webmaster@example.com', '-fwebmaster@example.com');
?>
当myEmail是Gmail帐户时,我从未收到过该邮件。然而,当我使用非gmail帐户时,我确实会收到消息。我不知所措,想尽一切办法来解决这个问题。我开始认为这是一个模糊的主机/服务器问题。您可以在此处查看服务器规格:

有什么想法吗

编辑-我还要补充一点,几周前,也就是我最后一次测试它时,这一切都很好。从那时起,没有任何重大的代码更改

编辑2-在阅读了一篇类似的文章后,我尝试添加和回复标题。。。还是不走运。新代码:

<?
$headers = 'From: <some@email.com>' . "\r\n" .
'Reply-To: <some@email.com>';

mail('<myEmail@gmail.com>', 'the subject', 'the message', $headers,
'-fwebmaster@example.com');
?>

试着把“发件人”和“回复地址”放在周围。我的工作电子邮件也有同样的问题。

结果是,谷歌阻止了我的服务器,因为同一服务器上的另一个网站被黑客入侵并用于垃圾邮件

为了测试并确保这是服务器的一个问题,我创建了一个简单的PHP文件,可以在页面刷新时向我的电子邮件地址发送电子邮件。当我发送到我基于exchange的电子邮件地址,但没有发送到任何与谷歌相关的帐户时,它就起作用了

代码:
$headers = 'From: <test@test.com>' . "\r\n" .
'Reply-To: <test@test.com>';

mail('<myEmail@gmail.com>', 'the subject', 'the message', $headers,
  '-fwebmaster@example.com');
?>

谢谢大家的帮助。

我在gmail上也遇到了类似的问题。不过我的题目是看你是否赢了。当我把它改成不太像营销/垃圾邮件的东西时,它成功了。因此,造成这种情况的原因并不总是PHP代码,但也可能是主题标题被列入黑名单。

我也遇到了同样的问题。但是当我检查我的C:\xampp\mailoutput文件夹时,发送的邮件在这个文件夹中收到。现在请检查并做必要的工作。它被发送到我的测试本地服务器。如果它是在真正的服务器上发送的,那可能是在您的托管服务器上,您必须通过site hoster进行检查

我发现将SPF和DKIM记录添加到DNS解决了问题。我可以使用phpmail函数向Gmail订户列表发送邮件

php.ini sendmail参数中的-f选项或mail extra parameters字段中使用的电子邮件中的域需要具有该域的有效SPF记录。 您还应该使用域密钥或DKIM。这里的诀窍是域密钥/DKIM区分大小写! 更新记录后,邮件将被发送到Gmail、Yahoo和AOL地址

阅读这里的来源。ABOMB的评论


我也有同样的问题。我使用密件抄送电子邮件地址记录发送的邮件。这是一个优势,因为如果gmail或hotmail阻止了邮件,那么BCC也被阻止了。 我创建了一个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);

突发新闻:你检查过你的gmail下的垃圾邮件标签吗?是的,我检查过我的垃圾邮件:使用像SwiftMailer这样的邮件类。这有助于摆脱这种奇怪的邮件问题。这个问题实际上源于我正在做的一个WordPress项目。我使用的是ContactForm7插件,这是一个非常有名的插件,也是我一直使用的插件。几周前我在这个网站上进行了测试,效果很好。我想看看这个问题是否与WordPress、ContactForm7或其他问题有关,因此我制作了问题中显示的代码,发现这也不起作用。谢谢。你知道为什么会发生这种行为,以及链中的哪个环节是负责的吗?php、sendmail、gmail等。