0

我正在尝试通过使用 JSON.stringify 编码然后在 PHP 中解码,然后通过电子邮件发送 JS 数组的内容。我收到成功警报,表明数据已发送到 PHP,但电子邮件未通过。任何人都可以发现任何明显我遗漏/错误的东西吗?

数组已通过.push函数填充,我可以在 HTML 中很好地输出,所以我知道它已填充。

使用 ajax 对我的数据字符串进行编码:

dataString = myArray; 

var jsonString = JSON.stringify(dataString);

 $.ajax({
    type: "POST",
    url: "script.php",
    data: {data : jsonString}, 
    cache: false,

    success: function(){
       alert("Success");
    }
});

然后在PHP中:

<?php
$data = json_decode(stripslashes($_POST['data']));

$to = "my@email.com";
$header = "Content-Type: text/html\r\nReply-To";
$subject = "This is my Subject Line";

$body = 
    @"
    <strong>The data is:</strong> $data
    ";


    if(mail($to, $subject, $body, $header)) {
        die("true");    
        } else {
            die("There was an error sending the email.");   
        }
?>

电子邮件根本没有通过,我根本没有收到任何错误消息。有人可以帮忙吗?谢谢!

4

3 回答 3

0

可能你没有邮件服务器。

您可以快速做的是,转到此链接,

http://www.toolheap.com/test-mail-server-tool/

下载工具。按照步骤运行它。

然后将您的代码更改为此以查看您可以执行的操作,

<?php
$data = json_decode(stripslashes($_POST['data']));

$to = "abc@gmail.com";
$header = "Content-Type: text/html\r\nReply-To";
$subject = "This is my Subject Line";

$body = 
@"
<strong>The data is:</strong> 
".print_r($data, true) ;


if(mail($to, $subject, $body, $header)) {
    die("true");    
    } else {
        die("There was an error sending the email.");   
    }
?>

我认为您将获得价值,但您将如何使用它是您的选择。

干杯。

于 2013-06-05T10:45:39.883 回答
0

你在 PHP 机器上有一个邮件服务器吗?

mail()如果邮件被接受投递,则返回 true,但这并不意味着它已被发送。

于 2013-06-05T10:21:53.087 回答
0

首先,您不能直接将 $data 数组转换为字符串。

您必须使用 print_r($data, true) 将数组的内容插入到字符串中

于 2013-06-05T10:20:38.713 回答