7

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

6 回答 6

11

事实证明,谷歌阻止了我的服务器,因为同一服务器上的另一个站点被黑客入侵并用于垃圾邮件。

为了测试并确保这是服务器的问题,我创建了一个简单的 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');
?>

感谢大家的帮助。

于 2012-04-23T01:22:36.760 回答
5

尝试将 <> 放在 From 和 Reply to 地址周围。我在工作电子邮件中遇到了同样的问题。

于 2012-04-05T02:03:05.603 回答
1

我对gmail也有类似的问题。然而,我的主题标题是“看看你是否赢了”。当我将其更改为更少的营销/垃圾邮件时,它就通过了。因此,造成这种情况的并不总是 PHP 代码,但也可能是被列入黑名单的主题标题。

于 2013-11-04T10:03:24.183 回答
0

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

于 2017-06-03T14:43:56.037 回答
0

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

  1. 在 php.ini sendmail 参数或 mail() 额外参数字段中的 -f 选项中使用的电子邮件中的域需要具有该域的有效 SPF 记录。
  2. 您还应该使用域密钥或 DKIM。这里的诀窍是域密钥/DKIM 区分大小写!

更新记录后,邮件将被发送到 Gmail、Yahoo 和 AOL 地址。

在此处阅读源代码。来自 ABOMB 的评论

https://www.php.net/manual/en/function.mail.php#107321

于 2020-06-28T06:26:46.890 回答
0

我有同样的问题。我使用密件抄送电子邮件地址记录发送的消息。这是一个优势,好像 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);
于 2021-01-24T14:10:42.443 回答