0

Ajax と jquery を使用してメールを送信しようとしていますが、Ajax リクエストが成功してもメールが送信されません。電子メールシステムは他のものには機能しますが、私が作成している返信システムには機能しません...私のコードは次のとおりです:

var message =  $('#message').val();
var dataString = 'message=' + message ;
$.ajax({
    type: "POST",
    url: "reply.php",
    data: dataString,
    cache: false,
    success: function(html)
    {
        // success function
    }
});

ajax呼び出しが成功し、成功関数が呼び出されますが、電子メールは送信されません.. PHPコードは次のとおりです

$title = "something";
$message =  $_POST['message'];
$email = demo@demo
mail($email, "Reply to \"".$title."\"", $message,
"From: \"Ad reply\" <auto-reply@$host>\r\n" .
"X-Mailer: PHP/" . phpversion());

そして、私も...のif(isset($_POST))ことをしました。

4

2 に答える 2

0

これが機能することを確認するためにこのコードを試してください-


PHPコード:

if(isset($_GET['email'])){

$email = $_GET['email'];
$message = $_GET['msg'];

$to = "demo@example.com";
$subject = "Demo email";

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From:' .$email. "\r\n";            
mail($to, $subject, $message, $headers);
echo'success';
}
else{ echo'error'; }


AJAX / JQUERYスクリプト:

email = $("#email").val();
msg = $("#msg").val();
$.ajax({
    url: 'ajxContact.php?email='+email+'&msg='+msg,
    cache: false,
    success: function(html){
    if(html == 'error'){
        alert("An error occurer and the message can't be sent.");
      }
    else {
        alert('Email has been successfully sent.');
      }
    }
});
于 2012-12-01T12:35:42.827 に答える
0

あなたのコードは、 $host が設定されている場所を示していません。それを引き起こしている不正な「送信元」アドレスである可能性はありますか?

別の言い方をすれば、投稿データをフォームからメールに直接送信することはお勧めできません。最初にいくつかのフィルターを実行して、厄介なコードがメールに送信されないようにする必要があります。

于 2012-12-01T11:10:21.487 に答える