簡體   English   中英

從JS發送郵件數據到PHP成為mail()

[英]Sending mail data from JS to PHP to be mail()'d

我在看似簡單的問題上遇到了麻煩。

我想使用JQuery將一個包含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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM