防止PHP邮件发送到垃圾邮件gmail
问题描述:
这是我用来从网站上的联系表单发送电子邮件的完整代码。 尽管所有的最佳实践使用(标题等),结果是:防止PHP邮件发送到垃圾邮件gmail
1)确认电子邮件给用户去在每次Gmail的垃圾邮件,它是已检举为诈骗
2)管理员的电子邮件被标记作为网络钓鱼
有人可以帮我吗?谢谢!
<?
// -----------------------------------------------------------------------------
// Website info
$SiteName = "www.example.com";
$SiteWork = "Enterprise Name";
$SiteMin = "Ent. name";
$SiteEmail = "[email protected]";
$SecondaryEmail = "[email protected]";
$ThankYouMessage = "$SiteMin - Message sent!";
$SiteTel = "Tel (+39) 0XX.XXXXXXX";
$SiteFax = "Fax (+39) 0XX.XXXXXXX";
$SiteSocial = "#...";
$SiteAddress = "...";
// -----------------------------------------------------------------------------
// Retrieve contents
$UserSubject = $_POST['UserSubject'];
$UserName = $_POST['UserName'];
$UserCity = $_POST['UserCity'];
$UserEmail = $_POST['UserEmail'];
$UserComments = $_POST['UserComments'];
$UserAuth = $_POST['UserAuth'];
// -----------------------------------------------------------------------------
// Set up user message
$UserMessage = "<html><head></head><body>";
$UserMessage .= "<font size='6px'>";
$UserMessage .= "Ciao $UserName,";
$UserMessage .= "</font><br><br>";
$UserMessage .= "<font size='4px'>";
$UserMessage .= "abbiamo ricevuto il tuo messaggio.<br>";
$UserMessage .= "Grazie per averci scritto, ti risponderemo al più presto.<br><br>";
$UserMessage .= "</font><br>";
$UserMessage .= "<img src='http://www.piazzaimpianti.it/img/logo.svg' width='60px'><br><br>";
$UserMessage .= "$SiteWork $SiteAddress<br>";
$UserMessage .= "$SiteTel - $SiteName - $SiteSocial<br>";
$UserMessage .= "$SiteName<br>";
$UserMessage .= "</body></html>";
$UserHeaders = "From: $SiteEmail\r\n";
$UserHeaders .= "Reply-To: $SiteEmail\r\n";
$UserHeaders .= "Return-Path: $SiteEmail\r\n";
$UserHeaders .= "CC:\r\n";
$UserHeaders .= "BCC:\r\n";
$UserHeaders .= "MIME-Version: 1.0\r\n";
$UserHeaders .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$UserHeaders .= "X-Priority: 3\r\n";
$UserHeaders .= "X-Mailer: PHP". phpversion() ."\r\n";
// -----------------------------------------------------------------------------
// Set up admin message
$AdminMessage = "Messaggio:\n";
$AdminMessage .= "\n";
$AdminMessage .= "$UserComments\n";
$AdminMessage .= "\n\n";
$AdminMessage .= "-------------------------------------------------\n";
$AdminMessage .= "Dati utente:\n";
$AdminMessage .= "-------------------------------------------------\n";
$AdminMessage .= "$UserName \n";
$AdminMessage .= "$UserEmail \n";
$AdminMessage .= "$UserCity \n";
$AdminMessage .= "-------------------------------------------------\n";
$AdminMessage .= "Autorizzi il trattamento dei dati ai sensi del D.lgs.196/03 (*)? $UserAuth \n";
$AdminMessage .= "-------------------------------------------------\n";
$AdminMessage .= "Puoi rispondere al messaggio di $UserName\n";
$AdminMessage .= "scrivendo all'indirizzo: $UserEmail\n\n";
// -----------------------------------------------------------------------------
// Send confirmation to contact page
$array['Sent'] = array('payload' => 'sent');
echo json_encode($array);
// -----------------------------------------------------------------------------
// Send the emails
// confirmation email to user
mail($UserEmail, $ThankYouMessage, $UserMessage, $UserHeaders);
// email to admin
mail("$SiteEmail", "$UserSubject", $AdminMessage, "From: $UserEmail");
?>
答
您无法明确地控制您的电子邮件是否被标记为垃圾邮件,但有些事情可以帮助您做。
- 确保您的反向DNS是正确的。
- 执行SPF。
- 执行DKIM。
- 本地安装SpamAssassin并通过详细模式运行您的消息样本,以了解它们为什么会被标记。
- 使用类似MailChimp或MailGun的服务而不是本地交付方。
答
您需要使用标题。这为我工作:
$to = "[email protected]";
$subject = "your subject";
$body = "<p>Your Body</p>";
$headers = "From: Sender Name <[email protected]>" . "\r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
mail($to, $subject, $body, $headers);
此外,您可以在您的注册添加TXT Record
为SPF
,你有你的域名。进入DNS设置,并添加以下TXT记录:
类型:TXT
主持人:example.com
值:v=spf1 ip4:YOUR.SERVER.IP.HERE ~all
TTL:Automatic
这是用来验证该邮件没有被欺骗。
+0
我已经在使用标题。现在我将尝试在域中设置注册。谢谢 –
https://support.google.com/mail/answer/81126?hl=zh-CN – mkaatman
尝试使用swiftmailer发送它,我敢打赌问题消失。 – mkaatman