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

您的代码未显示 $host 的设置位置。可能是导致它的格式错误的“发件人”地址?

另一方面,将帖子数据直接从表单发送到电子邮件不是一个好主意,您应该首先通过一些过滤器运行它,以确保不会有讨厌的代码最终出现在电子邮件中。

于 2012-12-01T11:10:21.487 回答
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 回答