[英]Avoid emails being considered as spam when sent via a PHP contact form
[英]Some contact form emails not being sent due to spam filtering on host
我需要調整我網站上的聯系表格。 這是一個PHP / Ajax聯系表。
目前我有一個問題 - 當客戶填寫我的聯系表格NAME - EMAIL - SUBJECT - MESSAGE我的DREAMHOST服務器存在問題,因為他們的新反垃圾郵件政策並且我沒有收到一些消息 - 如果他們的電子郵件是@hotmail。那沒關系。 但如果他們的電子郵件是@ gmail.com我不會收到消息等。
DREAMHOST告訴我:
感謝您聯系技術支持我檢查了您網站上的表單日志,並確實看到服務器因最近實施的反垃圾郵件策略而退回電子郵件,這些策略不允許使用非Dreamhost傳出服務器從服務器發送電子郵件或“發送”電子郵件地址。 您可以在此處閱讀有關此政策的更多詳情:
http://wiki.dreamhost.com/Sender_Domain_Policy_and_Spoofing
您的郵件表單使用訪問者的電子郵件地址作為“發件人”地址,在大多數情況下,該地址不是Dreamhost托管的電子郵件地址。 由於上面的垃圾郵件策略,如果電子郵件地址未使用Dreamhost郵件服務器,服務器將阻止從服務器發送的郵件。 因此,您需要做的是將郵件表單設置為使用Dreamhost托管地址作為“發件人”地址。
或者您需要找到另一個郵件表單,允許您將固定的電子郵件地址設置為“發件人”地址。 這樣,您可以在表單中將Dreamhost托管的電子郵件地址設置為“發件人”地址。
該守則如下:
<?php
/*
Credits: Bit Repository
URL: http://www.bitrepository.com/
*/
include dirname(dirname(__FILE__)).'/config.php';
error_reporting (E_ALL ^ E_NOTICE);
$post = (!empty($_POST)) ? true : false;
if($post)
{
include 'functions.php';
$name = stripslashes($_POST['name']);
$email = trim($_POST['email']);
$subject = stripslashes($_POST['subject']);
$message = stripslashes($_POST['message']);
$error = '';
// Check name
if(!$name)
{
$error .= 'Please enter your name.<br />';
}
// Check email
if(!$email)
{
$error .= 'Please enter an e-mail address.<br />';
}
if($email && !ValidateEmail($email))
{
$error .= 'Please enter a valid e-mail address.<br />';
}
// Check message (length)
if(!$message || strlen($message) < 15)
{
$error .= "Please enter your message. It should have at least 15 characters.<br />";
}
if(!$error)
{
$mail = mail(WEBMASTER_EMAIL, $subject, $message,
"From: ".$name." <".$email.">\r\n"
."Reply-To: ".$email."\r\n"
."X-Mailer: PHP/" . phpversion());
if($mail)
{
echo 'OK';
}
}
else
{
echo '<div class="notification_error">'.$error.'</div>';
}
}
?>
我需要知道的是我需要對代碼做什么,所以我可以收到我的聯系表單的所有提交。 如果有人能提供幫助我真的很感激。
替換以下內容:
mail = mail(WEBMASTER_EMAIL, $subject, $message,
"From: ".$name." <".$email.">\r\n"
."Reply-To: ".$email."\r\n"
只是:
$mail = mail(WEBMASTER_EMAIL, $subject, $message,"X-Mailer: PHP/" . phpversion());
並根據需要將用戶的電子郵件地址添加到您的郵件中。 你現在正在做的事情被稱為欺騙 ,即使是善意的,你實際上也是在欺詐。 這相當於有人打電話給你對你的產品表現出興趣,你取下他們的實際地址,把它放在信封的左上角,然后給自己發一封信,說打電話的人有興趣。 除了這只是一種相當奇怪的做事方式之外,它還建議使用電子紙質記錄,建議用戶實際上通過電子郵件發送給您,而他們卻沒有。 在填寫在線表格后,我個人會不自在地發現我的電子郵件地址是以這種方式使用的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.