for generating and send relevant Otp to respesctive email
//EmailOtp verification and save otp to database.
public JsonResult SendEmail(string email)
{
string message = "This email address does not match our records.";
EmailOtp user = db.EmailOtps.Where(x => x.Email == email).FirstOrDefault();
if (user != null)
{
string username = user.UserName;
string password = user.Password;
// to send the random password in email
string strNewPassword = GeneratePassword().ToString();
user.OTP = strNewPassword;
db.SaveChanges();
if (!string.IsNullOrEmpty(password))
{
MailMessage mm = new MailMessage("sender@gmail.com", email);
mm.Subject = "Password Recovery";
mm.Body = string.Format("Hi {0},<br /><br />Your password is {1}{2}.<br /><br />Thank You.", username, password, strNewPassword);
mm.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.EnableSsl = true;
NetworkCredential NetworkCred = new NetworkCredential();
NetworkCred.UserName = "sender@gmail.com";
NetworkCred.Password = "password";
smtp.UseDefaultCredentials = true;
smtp.Credentials = NetworkCred;
smtp.Port = 587;
smtp.Send(mm);
message = "Password has been sent to your email address.";
}
}
return Json(message, JsonRequestBehavior.AllowGet);
}
//For generating random number
public string GeneratePassword()
{
string PasswordLength = "6";
string NewPassword = "";
string allowedChars = "";
allowedChars = "1,2,3,4,5,6,7,8,9,0";
//allowedChars += "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,";
//allowedChars += "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,";
char[] sep = {','};
string[] arr = allowedChars.Split(sep);
string IDString = "";
string temp = "";
Random rand = new Random();
for (int i = 0; i < Convert.ToInt32(PasswordLength); i++)
{
temp = arr[rand.Next(0, arr.Length)];
IDString += temp;
NewPassword = IDString;
}
return NewPassword;
}
@{
Layout = null;
}
<html>
<head>
<title>Index</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js"></script>
<script type="text/javascript">
var app = angular.module('MyApp', []);
app.controller("MyController", function ($scope, $http, $window) {
$scope.SendEmail = function () {
$http.get("/forgetpassword/SendEmail/", { params: { email: $scope.Email} })
.then(function (response) {
$scope.Message = response.data;
if (response.data == 'This email address does not match our records.') {
$scope.Color = "Red";
}
else if (response.data == 'Password has been sent to your email address.') {
$scope.Color = "Green";
}
$scope.Email = "";
}).then(function (response) {
$scope.Message = response.responseText;
});
}
});
</script>
</head>
<body>
<div ng-app="MyApp" ng-controller="MyController">
<input type="text" name="email" ng-model="Email" />
<input type="button" name="name" value="Send" ng-click="SendEmail()" />
<br />
<span ng-style="{color:Color}" ng-bind="Message"></span>
</div>
</body>
</html>