2016-10-12 71 views
1

這是我的控制器功能打mail.php時得到迴應:

$scope.submitContactForm = function() { 
    $log.info($scope.contact); 
    if ($scope.contactform.$valid) { 
     $http({ 
      method : 'POST', 
      url  : 'http://blog.local/php/mail.php', 
      data : $scope.contact, //forms user object 
      headers : {'Content-Type': 'application/x-www-form-urlencoded'} 
     }) 
     .success(function(data) { 
      $log.info(data); 
      if (data.errors) { 
       // Showing errors. 
      } else { 
       $scope.messageForm = data.message; 
      } 
     }); 
    } 
}; 

而且我mail.php

<?php 
session_start(); 
require_once('class.phpmailer.php'); 
require_once('class.smtp.php'); 
if($_POST) { 
if(!isset($_SESSION['sended'])) { 
    // Re-check with php 
    if(isset($_POST['name']) && !empty($_POST['name'])): 
     $name = filter_var(trim($_POST['name']), FILTER_SANITIZE_STRING); 
    else: 
     echo $error = 'Name is empty!'; 
     return; 
    endif; 

    if(isset($_POST['contactlastname']) && !empty($_POST['contactlastname'])): 
     $lastname = filter_var(trim($_POST['contactlastname']), FILTER_SANITIZE_STRING); 
     // Add lastname to name 
     $name = ($lastname) ? $name. ' ' .$lastname : $name; 
    endif; 

    if(isset($_POST['email']) && !empty($_POST['email'])): 
     $email = filter_var(trim($_POST['email']), FILTER_SANITIZE_EMAIL); 
      if(!filter_var($email , FILTER_VALIDATE_EMAIL)): 
       echo $error = 'Email is not valid!'; 
       return; 
      endif; 
    else: 
     echo $error = 'Email is empty!'; 
     return; 
    endif; 

    if(isset($_POST['subject']) && !empty($_POST['subject'])): 
     $subject = filter_var(trim($_POST['subject']), FILTER_SANITIZE_STRING); 
    else: 
     $subject = "Hello"; 
    endif; 

    if(isset($_POST['message']) && !empty($_POST['message'])): 
     $message = filter_var(trim($_POST['message']), FILTER_SANITIZE_STRING); 
    else: 
     echo $error = 'Message is empty!'; 
     return; 
    endif; 

    if(!isset($error)) { 
     // if we have no validation errors prepare mail 
     $mail = new PHPMailer; 
     $mail->isSMTP(); 
     $mail->SMTPDebug = 0; 
     $mail->Debugoutput = 'html'; 

     //Set the hostname of the mail server gmail - yandex- outlook or your hosting's 
     $mail->Host = "smtp.gmail.com"; // <------------ change with your host name 
     // use 
     // $mail->Host = gethostbyname('smtp.gmail.com'); 
     // if your network does not support SMTP over IPv6 

     //Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission 
     $mail->Port = 465; // <------------ Change with port 25 - 465 - 587 and etc.. 

     //Set the encryption system to use - ssl (deprecated) or tls 
     $mail->SMTPSecure = 'ssl'; // <------------ tls (port 587) or ssl (port 465) 

     //Whether to use SMTP authentication 
     $mail->SMTPAuth = true; 

     //Username to use for SMTP authentication - use full email address for gmail 
     $mail->Username = "[email protected]"; // <------------ Smtp authentication - username here 

     //Password to use for SMTP authentication 
     $mail->Password = ""; // <------------ Smtp authentication -password here 

     $mail->setFrom($email, $name); 
     $mail->AddReplyTo($email,$name); 

     //Set who the message is to be sent to --- CHANGE THIS EMAIL ADDDRES WITH THE ONE YOU WANT TO RECEIVE EMAILS AND WWIT YOUR NAME 
     $mail->addAddress('[email protected]', 'Sharjil'); // <----------- CHANGE YOUR WITH YOUR EMAIL ADDRES 

     $mail->Subject = $subject; 
     $mail->msgHTML($message); 

     // If send me copy checkbox is checked send a copy to user 
     if(isset($_POST['contactselfemail'])): 
      $mail->addCC($email); 
     endif; 

     // Send mail and report the result 
     if($mail->send()): 
      echo 'success'; 
      $_SESSION['sended'] = 'sended';    
     else: 
      echo 'error'; 
      unset($_SESSION['sended']); 
     endif; 
    } 
} else { 
    echo 'already'; 
} 
} 
?> 

當我使用$擊中mail.php HTTP ,它給了我空字符串作爲迴應,並且電子郵件沒有發送到我的收件箱。我不太瞭解php。任何人都可以告訴我在mail.php中應該做些什麼改變,這樣就可以發送郵件並獲得成功和錯誤的正確迴應。

回答

0

獲得訪問後數據用這個在你的PHP文件:

$postdata = file_get_contents("php://input"); 
$data_object = json_decode($postdata); 

在使用

$ VAR_NAME = $ data_object-> VAR_NAME後;

獲得訪問後數據

+0

感謝託比。現在正在工作.. –