通过PHP邮件function发送电子邮件到垃圾邮件

我在将邮件发送到我的收件箱(Gmail帐户)时遇到问题,但每次都发送到垃圾邮件文件夹。 这是代码片段

//$ticketDetail is array which contain required information to send. sendOwnershipEmail('dineshnagarscriet@gmail.com', $ticketDetail); function sendOwnershipEmail($email, $ticketDetail) { $param = new stdClass(); $param->content = "<div> <div><b>".$ticketDetail[0]['ticket_number']."</b></div><br/> <div><img src='".$ticketDetail[0]['image_path']."'/></div><br/> <div>Ticket with ticket number ".$ticketDetail[0]['ticket_number']." has been requested for tranfer from <div/> <div>".$ticketDetail[0]['oldDepartment']." to ".$ticketDetail[0]['newDepartment']." Department <div/> </div>"; $param->sendTo = $email; $param->subject = "Request for Department transfer"; sendMailFunction($param); } function sendMailFunction($param) { $to = $param->sendTo; $subject = $param->subject; $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= 'From: successive.testing@gmail.com' . "\r\n"; $message = "<html><head>" . "<meta http-equiv='Content-Language' content='en-us'>" . "<meta http-equiv='Content-Type' content='text/html; charset=windows-1252'>" . "</head><body>" .$param->content. "<br><br></body></html>"; mail($to, $subject, $message, $headers); } 

我已经尝试了很多设置标题为答复,返回path等,但每次它发送到垃圾邮件。 你能弄清楚什么是问题?

问题很简单,PHP邮件function没有使用configuration良好的SMTP服务器。

如今,电子邮件客户端和服务器对电子邮件发送服务器执行大量的检查,如反向DNS查询,重复列表和无限制。 所有这些testing将失败与PHP邮件()函数。 如果您使用的是dynamicIP,则更糟糕。

使用PHPMailer-Class并将其configuration为使用smtp-auth以及configuration良好的专用SMTP服务器(本地或远程服务器),并且问题消失。

https://github.com/PHPMailer/PHPMailer

尝试将您的标题更改为:

 $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n"; $headers .= "From: successive.testing@gmail.com" . "\r\n" . "Reply-To: successive.testing@gmail.com" . "\r\n" . "X-Mailer: PHP/" . phpversion(); 

有几个原因。

  • 其中之一是需要Reply-To

  • 使用撇号而不是双引号。 在我的表单体验中,这两件事通常是在垃圾邮件框中触发邮件的结果。

您也可以尝试将$from更改为:

 $from = "successive.testing@gmail.com"; 


编辑:

请参阅我在主题https://stackoverflow.com/a/9988544/1415724和https://stackoverflow.com/a/16717647/1415724和https://stackoverflow.com/a/9899837/1415724上find的这些链接;

https://stackoverflow.com/a/5944155/1415724和https://stackoverflow.com/a/6532320/1415724

  • 尝试使用您的ISP的SMTP服务器。

    使用这显然工作许多: X-MSMail-Priority: High

http://www.webhostingtalk.com/showthread.php?t=931932

“我的主机帮助我在域上启用DomainKeys和SPFlogging,现在当我发送一个testing邮件到我的Hotmail地址时,它不会以Junk结尾,在cPanel的电子邮件authentication下启用这些设置真的很容易。我不敢相信我以前从来没有见过这种情况,它只能通过使用phpmailer通过SMTP发送,其他任何方式仍然被标记为垃圾邮件。

PHPmailer发送邮件到垃圾邮件在Hotmail。 如何修复http://pastebin.com/QdQUrfax

如果您通过自己的邮件服务器发送邮件,则可能需要添加一个“发件人”标题,该标题将包含来自您自己的域的电子邮件地址。 Gmail可能会垃圾邮件,因为从地址是一个Gmail地址,但没有从他们自己的服务器发送。

我们通常用电子邮件做的,防止垃圾邮件文件夹作为最终目的地,使用Gmail作为smtp服务器或Mandrill作为smtp服务器。

用这个:

 <?php // To Email: $To = "Email@email.com"; // Theme: $Theme = "Email Spam"; // Text to your enemy! : $Text = "Your text"; // From: $From = "FROM: simple@emailspam.com"; // How many times to send: $HowMuch = 2; for($i = 0; $i < $HowMuch; $i++) { mail($To, $Theme, $Text, $From); } echo "<center><span style='color:green'><h1>Success!</h1></span><br><br><span style='color:green'>To Email:</span> $to <br><span style='color:green'>Theme:</span> $Theme <br><span style='color:green'>Text:</span> $Text <br><span style='color:green'>From Email:</span> $From <br><span style='color:green'>How many times to send:</span> $HowMuch"; ?> 

我知道,它对我来说非常简单:D只需把这个代码放到php文件中,运行它(在网站中)并完成。 如果刷新页面,则会再次发送。 你可以testing你的自我!

对不起,我的英文不好,如果不好…