Здесь я отправляю почту при отправке формы. Все работает нормально, единственная проблема - даже если почта не отправляется из-за неправильной аутентификации или проблемы с Интернетом, пользователь получает сообщение об успешном завершении. Я хочу, чтобы пользователь получил сообщение об ошибке, если почта не была отправлена.Невозможно отправить ответ об ошибке nodemailer от node.js до angular.js
клиент
this.mail= function() {
var data = ({
name :this.name,
email :this.email
})
//Post Request
$http({
method: 'POST',
url: '/contact2', data
}).then(function successCallback(response) {
$mdToast.show(
$mdToast.simple()
.textContent('Thanks for your message '+data.name)
.position($scope.getToastPosition())
.hideDelay(5000)
);
}, function errorCallback(response) {
$mdToast.show(
$mdToast.simple()
.textContent('Something went wrong, Please TRY AGAIN '+data.name)
.position($scope.getToastPosition())
.hideDelay(5000)
);
});
});
сервер
function send(req, res) {
console.log(req.body);
var data= req.body
smtpTransport.sendMail({
from: "<[email protected]>",
to: data.email,
subject: "Website Submission from "+data.name,
text: 'You have a new submission with the following details...,
}, function(error, response){ //callback
if(error){
console.log(error);
}if{
console.log(" Message sent "+data.name);
}
smtpTransport.close();
});
res.json(data);
}
Ошибка синтаксиса в обратном вызове, вы используете 'if {', пожалуйста, см. Мой ответ, чтобы исправить это. –