Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP邮件不会出现在Gmail上,但会出现在Hotmail和其他第三方/ISP帐户上_Php_Email_Gmail - Fatal编程技术网

PHP邮件不会出现在Gmail上,但会出现在Hotmail和其他第三方/ISP帐户上

PHP邮件不会出现在Gmail上,但会出现在Hotmail和其他第三方/ISP帐户上,php,email,gmail,Php,Email,Gmail,我有两个网站,邮件被发送到两个gmail账户。我使用PHP来处理邮件,但是邮件没有显示在gmail上(不是在垃圾邮件/垃圾邮件中,只是没有显示)。如果我切换PHP发送到我的个人hotmail帐户,邮件就会显示出来。通过我的ISP的个人电子邮件帐户也是如此 以前的邮件会出现在这两个vanity gmail帐户上,你知道他们为什么会停止吗?有可能你没有设置正确的邮件头数据,这些邮件甚至在到达垃圾邮件文件夹之前就被阻止了 尝试添加如下内容: $headers = 'From: your@email.c

我有两个网站,邮件被发送到两个gmail账户。我使用PHP来处理邮件,但是邮件没有显示在gmail上(不是在垃圾邮件/垃圾邮件中,只是没有显示)。如果我切换PHP发送到我的个人hotmail帐户,邮件就会显示出来。通过我的ISP的个人电子邮件帐户也是如此


以前的邮件会出现在这两个vanity gmail帐户上,你知道他们为什么会停止吗?

有可能你没有设置正确的邮件头数据,这些邮件甚至在到达垃圾邮件文件夹之前就被阻止了

尝试添加如下内容:

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

这是mail()函数的第四个参数。

我过去遇到过一些问题,某些免费电子邮件提供商无法从我的服务器接收任何电子邮件

我发现,除了在实际消息中添加正确的标题外,还有一些事情可能是罪魁祸首:

  • 确保您的服务器已配置为
  • 确保您没有运行开放式数据库
  • 确保你的服务器没有出现任何问题(如果你有一个开放的中继,你可能会被列入黑名单)
很有可能,PHP发送电子邮件很好,但Google服务器拒绝了来自您服务器的任何消息

您可以通过快速执行以下操作来测试这一点:

mail -s Test you@gmail.com < /dev/null
mail-s测试you@gmail.com

如果您的服务器正常,您将在gmail中收到一条消息,如果您不正常,PHP不是问题。

我发现为您的域设置一个合适的SPF记录确实有帮助


这很可能是服务器配置问题,而不是PHP问题

顺便说一句,我发现gmail比我们的本地系统更宽容,所以我可以把邮件发送到我的gmail帐户,但不能发送到托管域的帐户


我不认为谷歌使用第三方黑名单,但他们确实关心服务器配置(它是否正确识别自己,是否有匹配的SPF和RDN记录,是否正确响应命令)。你可能会尝试一些测试服务,如或。

我看已经太晚了,但……以下代码适用于gmail

<html>
Mail Responder:<br><br>
<?php 
$to = $_REQUEST['MyEmail'] ; 
$subject = $_REQUEST['subject'] ; 
$greeting = $_REQUEST['greeting'] ; 
$realname = $_REQUEST['realname'] ;
$HisEmail = $_REQUEST['HisEmail'] ; 
$message = $_REQUEST['message'] ;
$headers = 'From: '.$HisEmail;  
//$headers = 'From: $HisEmail' . "\r\n" .
//'Reply-To: some@email.com';

$send = mail($to, $subject, $greeting."\n"."\n".$realname."\n"."\n".$HisEmail."\n"."\n".$message, $headers );
if ($send)
$mailReturns = "Mail sent successfully.";
else
$mailReturns = "Mail sent failed.";

?>
<?php echo $mailReturns; ?>
</html>

邮件回复者:


正确的标题数据是什么?我没有设置任何标题:$到=myaddy@gmail.com“;$subject='my subject';$body=urlencode($comments);mail($to,$subject,urldecode($body),”发件人:{$\u POST['email']}”);再说一遍,邮件过去会通过这两个帐户发送。没有代码更改。同样值得检查谷歌开发博客,看看他们是否更改了任何内容。如果他们开始检查SPF,可能会导致问题。但当gmail作为收件人处理时,我们无法在不影响邮件传递的情况下更改邮件标题。我不得不omment
$mail->ClearCustomHeaders();
和所有自定义邮件头
$mail->AddCustomHeader();
现在gmail很好地接收了电子邮件。我也遇到了同样的问题。我也有所有需要的邮件头,但电子邮件没有显示出来。这对gmail对我来说不起作用。运行完全相同的代码并发送到gmail帐户。