将邮件数据从JS发送到PHP以进行mail()的



我遇到一个看似简单的问题。

使用JQuery,我想POST一个数组包含2项,一个电子邮件地址和电子邮件内容,到一个简单的PHP脚本,邮件客户的关注回我自己的服务器电子邮件。

我正在接收电子邮件,但它是空白的,因为我没有正确编码或解码JSON对象或其他东西。

Javascript:

...
var JSONEmailRequest = new Object();
JSONEmailRequest.emailaddress = $("#emailInput").val();
JSONEmailRequest.content = $("#contentInput").val();
$.post("/email.php", JSON.stringify(JSONEmailRequest), function (data) {
    //do stuff
});
...
PHP:

<?php
    $POSTJSONObj = json_decode($POST['JSONEmailRequest']);
    $email_to = "shawnandrews@saportfolio.ca";
    $email_subject = "User enquiry from ".$POSTJSONObj['emailaddress'];
    $email_body = $POSTJSONOb j['content'];
    $result = mail($email_to,$email_subject,$email_body,"From: ".$email_to);
    if(!$result) {
        echo false;   
    } else {
        echo true;
    }
?>

不要将JSONEmailRequest转换为JSON。$.post期望data参数是一个对象或www-form-urlencoded格式的字符串。这么做:

$.post("/email.php", JSONEmailRequest, function(data) {
    ...
}, "json");

在PHP代码中,使用$_POST获取参数,使用json_encode返回结果。

<?php
$email_to = "shawnandrews@saportfolio.ca";
$email_subject = "User enquiry from ".$_POST['emailaddress'];
$email_body = $_POST['content'];
$result = mail($email_to,$email_subject,$email_body,"From: ".$email_to);
echo json_encode($result);

最新更新