在PHPMailer中处理AngularJS数组

vkm*_*vkm 5 phpmailer angularjs

我正在使用AngularJS和PHPMailer构建一个应用程序.我需要将一个数组从我的Angular应用程序传递给PHPMailer,然后在PHPMailer中检索数组并将数据邮寄到客户端.

$scope.data = {};
var link = 'http://uvw.com/mail.php';
          $http.post(link, {order:$scope.listItems}).then(function (res){
                    $scope.response = res.data;
                    console.log($scope.response);
          });
Run Code Online (Sandbox Code Playgroud)

这里,$ scope.listItems是一个数组,包括客户名称,客户电子邮件,客户电话等主要字段以及每个头下的大量数据.所以归结为$ scope.listItems.customerName,$ scope.listItems.customerPhone等.我使用angular forEach非常容易地检索Angular中的数据.

我已成功将数据传递给PHPMailer,但我不知道如何在PHPMailer中检索数据并将其邮寄给它.

UPDATE

PHPMailer代码

    if (isset($_SERVER['HTTP_ORIGIN'])) {
        header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
        header('Access-Control-Allow-Credentials: true');
        header('Access-Control-Max-Age: 86400');    
    }


    if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {

        if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
            header("Access-Control-Allow-Methods: GET, POST, OPTIONS");         

        if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
            header("Access-Control-Allow-Headers:        
            {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");

        exit(0);
    }

    $postdata = file_get_contents("php://input");
    if (isset($postdata)) {
        $request = json_decode($postdata);
        foreach ($order as $value) {
            $body=$order;
        }
        require("PHPMailer/class.phpmailer.php");
        $mail = new PHPMailer();
        $mail->IsSMTP();               
        $mail->Host = "localhost"; 
        $mail->SMTPAuth = true; 
        $mail->Username = "support@uvw.com"; 
        $mail->Password = "support@123";
        $mail->From = "support@uvw.com";
        $mail->FromName = "uvw";
        $mail->AddAddress("orders@uvw.com", "Orders");
        $mail->WordWrap = 50;
        $mail->IsHTML(true);                         
        $mail->Subject = "New Customer";
        $mail->Body    = $body;
        $mail->AltBody = "Alternate Body";
        if(!$mail->Send())
        {
            echo "Message could not be sent. <p>";
            echo "Mailer Error: " . $mail->ErrorInfo;
            exit;
        }
        echo "Message has been sent";
    }

    else {
        echo "Could not Mail";
    }
Run Code Online (Sandbox Code Playgroud)

$ scope.listItems datastructue

$scope.listItems.customerName,
$scope.listItems.customerEmail,
$scope.listItems.customerPhone,
$scope.listItems.customerAddress
Run Code Online (Sandbox Code Playgroud)

Syn*_*hro 0

这是错误的:

$request = json_decode($postdata);
foreach ($order as $value) {
    $body=$order;
}
Run Code Online (Sandbox Code Playgroud)

这每次都会覆盖 $body 的内容。您需要附加到它:

$body = '';
$request = json_decode($postdata);
foreach ($order as $value) {
    $body .= $order . "\n";
}
Run Code Online (Sandbox Code Playgroud)