0

Web サイトの連絡先フォームを調整する必要があります。PHP/Ajax コンタクト フォームです。

現在、私は問題を抱えています - クライアントが私の連絡先フォームに入力すると、名前 - メール - 件名 - メッセージが表示されます。DREAMHOST サーバーの新しいアンチスパム ポリシーにより、私の DREAMHOST サーバーに問題があり、いくつかのメッセージを受信できません - メールが @hotmail の場合。コム 大丈夫です。しかし、彼らの電子メールが @gmail.com の場合、私はメッセージなどを受け取りません.

ドリームホストが教えてくれます:

テクニカル サポートにご連絡いただきありがとうございます。サイトのフォームのログを確認したところ、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>';
}

}
?>

私が知る必要があるのは、連絡先フォームのすべての送信を受け取ることができるように、コードに対して何をする必要があるかだけです. 誰かが助けてくれたら本当にありがたいです。

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 に答える