0

我需要调整我网站上的联系表。这是一个 PHP/Ajax 联系表。

目前我有一个问题 - 当客户填写我的联系表格名称 - 电子邮件 - 主题 - 消息时,由于他们的新反垃圾邮件政策,我的 DREAMHOST 服务器出现问题,我没有收到一些消息 - 如果他们的电子邮件是 @hotmail。 com 没关系。但如果他们的电子邮件是@gmail.com,我不会收到消息等。

梦想家告诉我:

感谢您与技术支持联系或“发送自”电子邮件地址。您可以在此处阅读有关此政策的更多详细信息:

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>';
}

}
?>

我只需要知道我需要对代码做什么,这样我就可以收到我的联系表的所有提交。如果有人可以提供帮助,我将不胜感激。

4

1 回答 1

2

替换以下内容:

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());

并在需要时将用户的电子邮件地址添加到您的消息中。您现在正在做的事情被称为欺骗,即使是出于善意,您实际上也是在进行欺诈。这相当于有人打电话给你表示对你的产品感兴趣,你记下他们的实际地址并将其放在信封的左上角,然后给自己发一封信,说来电者有兴趣。除了这只是一种相当奇怪的做事方式之外,它还建议了一个电子纸跟踪,表明用户实际上给你发了电子邮件,但他们没有。在填写在线表格后,如果发现我的电子邮件地址以这种方式被使用,我个人会感到不舒服。

于 2013-09-16T02:09:43.027 回答