使用PHP邮件功能和jQuery提交电子邮件联系表单时出现以下错误:
SMTP服务器响应:554邮件被拒绝,因为它在第26行的mail.php中包含禁止的病毒或垃圾邮件内容
以下是我用于PHP的代码:
$mailTo = "info@***.com";
$mailFrom = $_POST['email'];
$subject = "RFP Inquiry";
$message = $_POST['message'];
mail($mailTo, $subject, $message, "From: ".$mailFrom);
以下是我用于jQuery AJAX调用的代码:
//var name = $("#contactname").val();
var email = $("#email").val();
var message = $("#subject").val();
//var age = $("#message").val();
var datastr ='email=' + email + 'message=' + message;
$('#submit').click(function(){
$.ajax({
type: "POST",
url: "mail.php",
data: datastr,
cache: false,
error: function () {
alert('did not go thru');
},
success: function(html){
//$("#response").fadeIn("slow");
$("#tab1").html(html);
//setTimeout('$("#response").fadeOut("slow")',2000);
alert('mail sent');
}
});
});
答案 0 :(得分:0)
您在datastr
:
var datastr ='email=' + email + 'message=' + message;
应该是
var datastr ='email=' + email + '&message=' + message;
<强>更新强>
SMTP错误来自SMTP服务器,因此您应该与运行该服务器的人交谈并找出他们为检测垃圾邮件而设置的条件。
我的猜测是没有正文的电子邮件根据他们的定义构成垃圾邮件。上面的datastr
错误会导致NULL正文。此外,如果您在message
文本框中没有放任何散文的情况下进行测试,那么这也会导致零长度。
注意......我在猜测为什么您的邮件被视为垃圾邮件...请与SMTP服务器所有者联系以了解更多信息。
答案 1 :(得分:0)
我更喜欢使用:
data: ({email : $("#email").val(), message: $("#message").val()}),
您的邮件功能可能会出现问题。 如果您发布邮件功能的代码,那就更清楚了。
答案 2 :(得分:0)
这是整个邮件功能代码。第一部分被注释掉了b / c我认为它有问题。
<?php
/*
$name = $_POST['name'];
$visitor_email = $_POST['email'];
$message = $_POST['message'];
$email_from = "info@***.com";
$email_from2 = $visitor_email;
$email_subject = "Inquiry";
$email_body = "here is the body of the message".
$to = "info@***.com";
$headers = "From: $email_from";
//$headers .= "Reply-To: $visitor_email";
//Send email!
mail($to,$email_subject,$email_body,$headers);
*/
$mailTo = "info@***.com";
$mailFrom = $_POST['email'];
$subject = "Inquiry";
$message = $_POST['message'];
mail($mailTo, $subject, $message, "From: ".$mailFrom);
?>