8

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

邮件过去常常出现在这 2 个虚荣的 gmail 帐户中,知道为什么他们会停下来吗?

4

5 回答 5

8

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

尝试添加如下内容:

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

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

于 2009-05-13T17:51:41.410 回答
4

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

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

很有可能,PHP 可以正常发送电子邮件,但 Google 服务器拒绝来自您的服务器的任何消息。

您可以通过快速测试:

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

如果你的服务器没问题,你会在你的 gmail 中收到一条消息,如果你没有,PHP 不是问题。

于 2009-05-14T03:30:33.713 回答
2

我发现为您的域设置适当的 SPF 记录确实很有帮助

http://www.openspf.org/SPF_Record_Syntax

于 2009-05-14T17:04:04.023 回答
0

似乎更有可能这是服务器配置问题而不是 PHP 问题。

附带说明一下,我发现 gmail 比我们的本地系统更宽容,所以我能够将消息发送到我的 gmail 帐户,但不是我在托管域上的帐户。

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

于 2009-05-14T17:16:56.257 回答
0

我认为为时已晚,但是...以下代码适用于 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>
于 2010-02-21T09:44:57.347 回答