我有 2 个站点,其中邮件被发送到两个虚荣 gmail 帐户。我正在使用 PHP 来处理邮件,但邮件没有显示在 gmail 中(不是垃圾邮件/垃圾邮件,只是没有显示)。如果我切换 PHP 以发送到我的个人 hotmail 帐户,邮件就会显示出来。通过我的 ISP 的个人电子邮件帐户也是如此。
邮件过去常常出现在这 2 个虚荣的 gmail 帐户中,知道为什么他们会停下来吗?
有可能您没有设置正确的标题数据,这些电子邮件甚至在到达垃圾邮件文件夹之前就被阻止了。
尝试添加如下内容:
$headers = 'From: your@email.com' . "\r\n" .
'Reply-To: some@email.com';
这是 mail() 函数的第四个参数。
过去我遇到过某些免费电子邮件提供商无法从我的服务器收到任何电子邮件的问题。
我发现除了在实际消息中放置正确的标题之外,还有一些事情可能是罪魁祸首:
很有可能,PHP 可以正常发送电子邮件,但 Google 服务器拒绝来自您的服务器的任何消息。
您可以通过快速测试:
mail -s Test you@gmail.com < /dev/null
如果你的服务器没问题,你会在你的 gmail 中收到一条消息,如果你没有,PHP 不是问题。
我发现为您的域设置适当的 SPF 记录确实很有帮助
我认为为时已晚,但是...以下代码适用于 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>