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

まず、$data 配列を文字列に直接変換することはできません。

配列の内容を文字列に挿入するには、print_r($data, true) を使用する必要があります。

于 2013-06-05T10:20:38.713 に答える