In one of my AngularJS web applications, I need to confirm a password by sending emails to a concerned person. How can I achieve this in AngularJS? I am a .NET guy and I am
you cannot send email via javascript library (angularjs or jquery and so on) you need server side for send mail best way for this case use ajax
You might also look into using a third party SaaS, like Mandrill, SendGrid, or MailGun. I have worked w/ building in an email feature using Mandrill. Account is free to setup and threshold for billing on messaging is like 12k/month. Sending is just a matter of following their API to HTTP POST to their REST interface. Small example below:
.controller('sentMailCntrl',function($scope, $http){
$scope.sendMail = function(a){
console.log(a.toEmail);
var mailJSON ={
"key": "xxxxxxxxxxxxxxxxxxxxxxx",
"message": {
"html": ""+a.mailBody,
"text": ""+a.mailBody,
"subject": ""+a.subject,
"from_email": "sender@sending.domain.com",
"from_name": "Support",
"to": [
{
"email": ""+a.toEmail,
"name": "John Doe",
"type": "to"
}
],
"important": false,
"track_opens": null,
"track_clicks": null,
"auto_text": null,
"auto_html": null,
"inline_css": null,
"url_strip_qs": null,
"preserve_recipients": null,
"view_content_link": null,
"tracking_domain": null,
"signing_domain": null,
"return_path_domain": null
},
"async": false,
"ip_pool": "Main Pool"
};
var apiURL = "https://mandrillapp.com/api/1.0/messages/send.json";
$http.post(apiURL, mailJSON).
success(function(data, status, headers, config) {
alert('successful email send.');
$scope.form={};
console.log('successful email send.');
console.log('status: ' + status);
console.log('data: ' + data);
console.log('headers: ' + headers);
console.log('config: ' + config);
}).error(function(data, status, headers, config) {
console.log('error sending email.');
console.log('status: ' + status);
});
}
})
.controller('sentMailCntrl',function($scope, $http){
$scope.sendMail = function(a){
console.log(a.toEmail);
var mailJSON ={
"key": "xxxxxxxxxxxxxxxxxxxxxxx",
"message": {
"html": ""+a.mailBody,
"text": ""+a.mailBody,
"subject": ""+a.subject,
"from_email": "sender@sending.domain.com",
"from_name": "Support",
"to": [
{
"email": ""+a.toEmail,
"name": "John Doe",
"type": "to"
}
],
"important": false,
"track_opens": null,
"track_clicks": null,
"auto_text": null,
"auto_html": null,
"inline_css": null,
"url_strip_qs": null,
"preserve_recipients": null,
"view_content_link": null,
"tracking_domain": null,
"signing_domain": null,
"return_path_domain": null
},
"async": false,
"ip_pool": "Main Pool"
};
var apiURL = "https://mandrillapp.com/api/1.0/messages/send.json";
$http.post(apiURL, mailJSON).
success(function(data, status, headers, config) {
alert('successful email send.');
$scope.form={};
console.log('successful email send.');
console.log('status: ' + status);
console.log('data: ' + data);
console.log('headers: ' + headers);
console.log('config: ' + config);
}).error(function(data, status, headers, config) {
console.log('error sending email.');
console.log('status: ' + status);
});
}
})
I have achieved through web services Please refer the code snippet below
public bool EmailNotification()
{
using (var mail = new MailMessage(emailFrom, "test.test.com"))
{
string body = "Your message : [Ipaddress]/Views/ForgotPassword.html";
mail.Subject = "Forgot password";
mail.Body = body;
mail.IsBodyHtml = false;
var smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.EnableSsl = true;
smtp.UseDefaultCredentials = false;
smtp.Credentials = new NetworkCredential(emailFrom, emailPwd);
smtp.Port = 587;
smtp.Send(mail);
return true;
}
}
and ajax call as
$.ajax({
type: "POST",
url: "Service.asmx/EmailNotification",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data)
{
},
error: function (XHR, errStatus, errorThrown) {
var err = JSON.parse(XHR.responseText);
errorMessage = err.Message;
alert(errorMessage);
}
});