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中應該做些什麼改變,這樣就可以發送郵件並獲得成功和錯誤的正確迴應。
感謝託比。現在正在工作.. –