이 내 컨트롤러 기능 :
$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';
}
}
?>
$ http를 사용하여 mail.php를 치면 응답으로 빈 문자열이 표시되고 이메일이받은 편지함으로 전송되지 않습니다. 나는 PHP를 너무 많이 모른다. 누구든지 이메일을 보내고 성공과 오류에 대한 적절한 응답을받을 수 있도록 mail.php에서 어떤 변경을해야하는지 알려주세요.
포스트 데이터에 액세스하려면 php-file에서 다음을 사용하십시오.
$postdata = file_get_contents("php://input");
$data_object = json_decode($postdata);
그 사용 후
$ var_name = $ data_object-> var_name;
포스트 데이터에 액세스하려면
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다