我试图通过PHP & Ajax将收集到的html表单作为电子邮件发送给我。出于某种原因,我可以通过成功提醒来更新用户界面,但是当我检查收件箱时没有发送实际的电子邮件。我的印象是我的PHP脚本可能不合理,因为当我记录我的js函数的结果时,所有表单值都被正确捕获。我应该如何正确地构造这个PHP邮件脚本?
这里是JS:
function _(id){ return document.getElementById(id); };
function submitForm(){
var formdata = new FormData();
formdata.append("first-name", _("first-name").value);
formdata.append("last-name", _("last-name").value);
formdata.append("email", _("email").value);
formdata.append("subject", _("subject").value);
formdata.append("message", _("message").value);
var ajax = new XMLHttpRequest();
ajax.open("POST", "email_me.php");
ajax.onreadystatechange = function() {
if(ajax.readyState == 4 && ajax.status == 200) {
if(ajax.responseText == "success"){
alert("Hey! It Worked!!");
} else {
// display error
}
}
}
ajax.send(formdata);
// Display the key/value pairs
for (var pair of formdata.entries()) {
console.log(pair[0]+ ', ' + pair[1]);
}
}
,这里是PHP脚本(email_me.php文件)
<?php
if(isset($_POST['first-name'], $_POST['last-name'], $_POST['email'], $_POST['subject'], $_POST['message'])){
$name = $_POST['first-name'];
$email = $_POST['email'];
$m = nl2br($_POST['message']);
$to = "[email protected]";
$from = $email;
$subject = $_POST['subject'];
$message = '<p>'.$m.'</p>';
$headers = "From: $from\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
if(mail($to, $subject, $message, $headers)){
echo "success";
} else {
echo "The server failed to send the message. Please try again later.";
}
}
?>
什么似乎的是这个问题?我用本地主机运行当前版本的Apache,使用MAMP Pro btw。
这里是服务器日志:
标记 - 08月23日,2016年,下午12点34分32秒
年08月23 12点35分24秒的MacBook Air后缀/主[7884]:守护进程启动 - 版本2.11.0,配置/ etc/postfix Aug 23 12:36:24 MacBookAir postfix/master [7884]:主退出时间已到达
Aug 23 12:36:24 MacBookAir postfix/master [7885]:守护进程开始 - 版本2.11.0,配置/ etc/postfix Aug 23 12:37:24 MacBookAir postfix/master [7885]:主退出时间已到达 Aug 23 12:37:24 MacBookAir r postfix/master [7886]:守护进程已启动 - 版本2.11.0,配置/ etc/postfix的
[PHP邮件形式没有完成发送电子邮件(的可能的复制http://stackoverflow.com/questions/ 24644436/php-mail-form-doesnt-complete-sending-e-mail) –
问题在于我们从用户的电子邮件发送电子邮件,发送来自常量电子邮件的电子邮件并保留用户的电子邮件。 $ header =“From:[email protected] \ r \ n”; –
你可以编辑我的代码来展示这个例子吗? @ Kool-Mind –