通过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服务器(本地或远程服务器),并且问题消失。
尝试将您的标题更改为:
$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/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你的自我!
对不起,我的英文不好,如果不好…