这里我在提交表单时发送邮件。一切工作正常,唯一的问题是即使由于错误的身份验证或互联网问题而未发送邮件,用户也会获得成功消息。我希望如果邮件发送失败,用户应该收到错误消息。
客户
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@gmail.com>",
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);
}
答案 0 :(得分:4)
服务器:您可以从服务器创建和发送错误消息
if(error){
res.json({
Status : false,
message : error
})
}else{
res.json({ Status : true,
message : 'Success'
})
}
客户:您可以在此处通过
捕获它function successCallback(response) {
if(response.Status){
console.log(response.message);
}// for success
else{
console.log(response.message)
} //for error
}
答案 1 :(得分:1)
您可以设置并发送其他data.emailSent = true
或data.emailSent = false
作为:
if(error){
data.emailSent = false;
} else{
data.emailSent = true;
}
在客户端,您可以检查此标记并相应地显示成功或失败。
答案 2 :(得分:1)
感谢Zeeshan Hassan和pooja帮助我,起初我无法访问状态和消息。我刚刚对Pooja的解决方案及其工作进行了一些修改
function successCallback(response) {
console.log(response.data.Status);
if (response.data.Status){console.log(response.data.message);}
` `else{ console.log(response.data.message) }