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

sxpgvts3  于 2023-03-28  发布在  PHP
关注(0)|答案(9)|浏览(129)

由于某种原因,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');
?>
wi3ka0sx

wi3ka0sx1#

事实证明,谷歌阻止了我的服务器,因为同一服务器上的另一个网站被黑客攻击并用于垃圾邮件。
为了测试并确定这是服务器的问题,我创建了一个简单的PHP文件,它会在页面刷新时向我的电子邮件地址发送一封电子邮件。当我向基于Exchange的电子邮件地址发送邮件时,它工作正常,但向任何与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');
?>

谢谢大家的帮助。

rggaifut

rggaifut2#

试着在发件人和回复地址周围放上〈〉。我在工作邮件上也遇到过同样的问题。

zf9nrax1

zf9nrax13#

我在gmail上也遇到了类似的问题。不过我的主题标题是“看看你是否赢了”。当我把它改成一些不那么营销/垃圾邮件的东西时,它就通过了。所以并不总是PHP代码导致了这个问题,但它也可能是被列入黑名单的主题标题。

9vw9lbht

9vw9lbht4#

我有同样的问题.但当我检查我的C:\xampp\mailoutput文件夹,发送的邮件在此文件夹中收到.现在请检查并做必要的.它是在我的测试本地服务器发送.如果它是在真实的的服务器上发送,这可能是在您的托管服务器上,你必须通过网站托管检查

zlhcx6iw

zlhcx6iw5#

我发现在DNS中添加SPF和DKIM记录解决了这个问题,我可以使用phpmail()函数发送到Gmail订阅者的列表中。

  1. php.ini sendmail参数中的-f选项或mail()额外参数字段中使用的电子邮件中的域需要具有该域的有效SPF记录。
    1.您还应该使用域密钥或DKIM。这里的技巧是域密钥/DKIM区分大小写!
    更新记录后,邮件将发送到Gmail、Yahoo和AOL地址。
    在这里阅读源代码。ABOMB的评论
    https://www.php.net/manual/en/function.mail.php#107321
kq4fsx7k

kq4fsx7k6#

我也遇到了同样的问题。我使用BCC电子邮件地址来记录发送的邮件。这是一个优势,就像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);
kyks70gy

kyks70gy7#

gmail取消了不太安全的应用程序选项。所以现在你需要生成一个强大的gmail密码,让谁使用这个密码进入你的帐户没有任何问题。按照我的步骤。1.首先去你的谷歌帐户管理,然后去安全。2.确保你的两步验证启用到你的手机或任何东西。3.然后去搜索在gmail管理器,然后搜索:应用密码。4.在选择应用下拉菜单中选择其他,并命名为任何你喜欢的。5然后点击生成,谷歌会给予你一个密码。确保你复制它并保存在其他地方。而不是使用你真实的的谷歌帐户密码在PHPMailer或laragon等设置,使用你刚刚生成的密码。

qzwqbdag

qzwqbdag8#

问题是BCC选项,删除BCC或-f电子邮件,仅此而已。

guicsvcw

guicsvcw9#

在我的例子中,问题是我没有使用From作为电子邮件格式,而只是一个简单的字符串。

相关问题