[英]PHP mail script not sending email when using jQuery .ajax()
我对此完全感到困惑。 我正在尝试使用jQuery ajax函数将POST数据发送到电子邮件脚本。
这是jQuery代码。
$('#bas-submit-button').click(function () {
var baslogo = $('input#bas-uploaded-logo').val();
var basscent = $('input[name="scent"]:checked').val();
var bascolor = $('input[name="color"]:checked').val();
var basdistributor = $('select#bas-distributor-name').val();
var basname = $('input#bas-contact-name').val();
var basemail = $('input#bas-contact-email').val();
var bascontactphone = $('input#bas-contact-phone').val();
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
var baspantone = $('input#pantone').val();
var basclip = $('input[name="clip-name"]:checked').val();
var dataString = 'bas-contact-name=' + basname + '&bas-contact-email=' + basemail + '&bas-contact-phone=' + bascontactphone + '&bas-uploaded-logo=' + baslogo + '&scent=' + basscent + '$color=' + bascolor + '&clip-name=' + basclip + '&pantone=' + baspantone + '&bas-distributor-name=' + basdistributor;
$.ajax({
type: "POST",
url: "build-a-smen-submit.php",
data: dataString,
success: function () {
$("#bas-submit-message").removeClass("error").addClass("success").html("Virtual Sample Submitted!").fadeIn(200).delay(5000).fadeOut(200);
}
});
return false;
});
还有我的PHP脚本。
<?
/* config start */
$emailAddress = '*****';
$ccAddress = '*****';
/* config end */
require "class.phpmailer.php";
session_start();
if($_POST['bas-submit-button']=='Submit'){
$msg='Name: '.$_POST['bas-contact-name'].'<br />
Email: '.$_POST['bas-contact-email'].'<br />
Phone: '.$_POST['bas-contact-phone'].'<br /><br />
Options<br /><br />
Logo File: '.$_POST['bas-uploaded-logo'].'<br />
Scent Selection: '.$_POST['scent'].'<br />
Accent Color: '.$_POST['color'].'<br />
Name on clip: '.$_POST['clip-name'].'<br />
Pantone Colors: '.$_POST['pantone'].'<br />
Distributor: '.$_POST['bas-distributor-name'].'<br /><br />
Submitting IP: '.$_SERVER['REMOTE_ADDR'];
$mail = new PHPMailer();
$mail->IsMail();
$mail->AddReplyTo($_POST['bas-contact-email'], $_POST['bas-contact-name']);
$mail->AddAddress($emailAddress);
$mail->AddCC($ccAddress);
$mail->SetFrom($_POST['bas-contact-email'], $_POST['bas-contact-name']);
$mail->Subject = 'Build-A-Smen Promotional Product Interest';
$mail->MsgHTML($msg);
$mail->Send();
if($_POST['ajax']){
echo '1';
}
else{
if($_SERVER['HTTP_REFERER'])
header('Location: '.$_SERVER['HTTP_REFERER']);
exit;
}
};
?>
我认为问题出在从jQuery发送POST数据中。 如果我注释掉我的jQuery代码,则php脚本可以正常工作,但是当我使用jQuery ajax函数运行它时,我得到了ajax成功函数触发但没有电子邮件。
您的问题是数据:dataString。
如前所述序列化,或者尝试类似的方式:
数据:{basscent:basscent,bascolor:bascolor,}等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.