public IActionResult SendContact() { try { string Subject = HttpContext.Request.Form["Subject"]; string Message = HttpContext.Request.Form["Message"]; string Name = HttpContext.Request.Form["Name"]; string Email = HttpContext.Request.Form["Email"]; string[] ValidationInputs = { Message, Name, Email }; if (!functions.ValidateInputs(ValidationInputs)) { TempData["ErrorMessage"] = "Validation error. Missing required field(s)."; return(RedirectToAction("Index", "Contact")); } //send email string ToName = _systemConfiguration.emailCompany; string[] MessageParagraphs = { "Contact message from " + Name + "<br/>", Message }; string PreHeader = "New contact message"; bool Button = false; int ButtonPosition = 0; string ButtonLink = null; string ButtonLinkText = null; string Closure = _systemConfiguration.emailClosure; string Company = _systemConfiguration.emailCompany; string UnsubscribeLink = null; string MessageBody = EmailFormating.FormatEmail(MessageParagraphs, PreHeader, Button, ButtonPosition, ButtonLink, ButtonLinkText, Closure, Company, UnsubscribeLink); string FromEmail = _systemConfiguration.smtpEmail; string ToEmail = functions.GetSiteLookupData("SupportEmail"); if (string.IsNullOrEmpty(Subject)) { Subject = "New Contact Message"; } EmailService.SendEmail(FromEmail, ToEmail, Subject, MessageBody, _systemConfiguration.smtpEmail, _systemConfiguration.smtpPass, _systemConfiguration.emailDisplayName, _systemConfiguration.smtpHost, _systemConfiguration.smtpPort); TempData["SuccessMessage"] = $"Thank you for getting in touch! We appreciate you contacting {_systemConfiguration.emailCompany}. <br/> One of our colleagues will get back in touch with you soon! <br/><br/> Have a great day!"; return(RedirectToAction("Index", "Contact")); } catch (Exception ex) { //Log Error _logger.LogInformation("Send Contact Message Error: " + ex.ToString()); TempData["ErrorMessage"] = "There was an error processing your request. Please try again. If this error persists, please send an email to the administrator."; return(RedirectToAction("Index", "Contact")); } }
public IActionResult ResetPossword() { string ForgotEmail = HttpContext.Request.Form["ForgotPasswordEmail"]; string[] ValidationInputs = { ForgotEmail }; if (!functions.ValidateInputs(ValidationInputs)) { TempData["ErrorMessage"] = "Validation error. Email required."; return(RedirectToAction("Index", "SignIn")); } if (!_context.Accounts.Any(s => s.Email == ForgotEmail)) { TempData["ErrorMessage"] = "The email provided does not exist in our records."; return(RedirectToAction("Index", "SignIn")); } string AccountID = _context.Accounts.Where(s => s.Email == ForgotEmail).FirstOrDefault().AccountID; try { //remove other user reset data if exists functions.DeleteTableData("PasswordForgot", "AccountID", AccountID, _systemConfiguration.connectionString); //add reset data string ResetID = functions.RandomString(120); functions.AddForgotPassword(ResetID, AccountID); //send user email //set email data string ToName = functions.GetAccountData(AccountID, "FullName"); string[] MessageParagraphs = { "Hello, ", "We've received a request to reset the password for your account. No changes have been made to your account yet. You can reset your password by clicking the link below: ", "If you did not request a new password, please let us know immediately by replying to this email." }; string PreHeader = "Account password reset link notification."; bool Button = true; int ButtonPosition = 2; string ButtonLink = functions.GetSiteLookupData("AppDomain") + "/PasswordReset/?id=" + ResetID; string ButtonLinkText = "Reset Password"; string Closure = _systemConfiguration.emailClosure; string Company = _systemConfiguration.emailCompany; string UnsubscribeLink = _systemConfiguration.emailUnsubscribeLink; string MessageBody = EmailFormating.FormatEmail(MessageParagraphs, PreHeader, Button, ButtonPosition, ButtonLink, ButtonLinkText, Closure, Company, UnsubscribeLink); string FromEmail = _systemConfiguration.smtpEmail; string ToEmail = ForgotEmail; string Subject = "Password Reset Email"; //Get smtp details string smtpEmail = _systemConfiguration.smtpEmail; string smtpPass = _systemConfiguration.smtpPass; string displayName = _systemConfiguration.emailDisplayName; string smtpHost = _systemConfiguration.smtpHost; int smtpPort = _systemConfiguration.smtpPort; EmailService.SendEmail(FromEmail, ToEmail, Subject, MessageBody, smtpEmail, smtpPass, displayName, smtpHost, smtpPort); TempData["SuccessMessage"] = @"The email with further instructions was sent to the submitted email address. If you don’t receive a message in 5 minutes, " + "check the junk folder. If you are still experiencing any problems, contact support at " + functions.GetSiteLookupData("SupportEmail"); //log activity if (_systemConfiguration.logActivity) { string LogAction = $@"User '{ToName}' did password reset."; functions.LogActivity(ToEmail, ToEmail, "PasswordReset", LogAction); } return(RedirectToAction("Index", "SignIn")); } catch (Exception ex) { //Log Error _logger.LogInformation("Password Reset Error: " + ex.ToString()); TempData["ErrorMessage"] = "There was an error processing your request. Please try again. If this error persists, please send an email to the administrator."; return(RedirectToAction("Index", "SignIn")); } }
public IActionResult SubscribeUser() { string SubscriberEmail = HttpContext.Request.Form["SubscriberEmail"]; if (!string.IsNullOrEmpty(SubscriberEmail)) { try { if (_context.Subscribers.Any(s => s.SubscriberEmail == SubscriberEmail)) { string Link = functions.GetSiteLookupData("AppDomain") + "/Subscriber/"; TempData["SuccessMessage"] = $@"Thank you for confirming your subscription. <br/> You can manage your subscriptions preferences <a href=" + Link + " target='_blank'>here</a>"; return(RedirectToAction("Index", "Home")); } //add subscriber functions.AddSubscriber(SubscriberEmail); //set email data string SubscriberID = _context.Subscribers.Where(s => s.SubscriberEmail == SubscriberEmail).FirstOrDefault().SubscriberID; string UnsubscribeLinkData = _systemConfiguration.emailUnsubscribeLink.Replace("#Subscriber#", SubscriberID); UnsubscribeLinkData = _systemConfiguration.emailUnsubscribeLink.Replace("#Email#", SubscriberEmail); //email subscriber string ToName = SubscriberEmail.Split("@")[0]; string[] MessageParagraphs = { "Hi there", "First off, I’d like to extend a warm welcome and ‘thank you’ for subscribing to the " + functions.GetSiteLookupData("SiteName") + " newsletter.", "The " + functions.GetSiteLookupData("SiteName") + " news blog endeavors to send you only the best content.", "To get you started on the right path, included in this email is a link to setup your subscription notifications to better suit your interest.", "In the mean time, we would be sending you only the most news information.", "If you have any questions or comments about the content you’re receiving please email us at " + functions.GetSiteLookupData("SupportEmail") + " and we will respond to your inquiry promptly.", // "You can unsubscribe to the newsletter by clicking this <a href="+UnsubscribeLink+">link</a>" }; string PreHeader = "New subscription notification."; bool Button = true; int ButtonPosition = 6; string ButtonLink = functions.GetSiteLookupData("AppDomain") + "/Subscriber/?ID=" + SubscriberID; string ButtonLinkText = "Setting up email automation"; string Closure = _systemConfiguration.emailClosure; string Company = _systemConfiguration.emailCompany; string UnsubscribeLink = UnsubscribeLinkData; string MessageBody = EmailFormating.FormatEmail(MessageParagraphs, PreHeader, Button, ButtonPosition, ButtonLink, ButtonLinkText, Closure, Company, UnsubscribeLink); string FromEmail = _systemConfiguration.smtpEmail; string ToEmail = SubscriberEmail; string Subject = "New Subscriber Email"; //Get smtp details string smtpEmail = _systemConfiguration.smtpEmail; string smtpPass = _systemConfiguration.smtpPass; string displayName = _systemConfiguration.emailDisplayName; string smtpHost = _systemConfiguration.smtpHost; int smtpPort = _systemConfiguration.smtpPort; EmailService.SendEmail(FromEmail, ToEmail, Subject, MessageBody, smtpEmail, smtpPass, displayName, smtpHost, smtpPort); TempData["SuccessMessage"] = @"Thank You For Subscribing! An email notification has been sent to " + SubscriberEmail + " with futher details on setting up your preferences."; } catch (Exception ex) { //Log Error _logger.LogInformation("Subscription Error: " + ex.ToString()); TempData["ErrorMessage"] = "There was an error processing your request. Please try again. If this error persists, please send an email."; } } return(RedirectToAction("Index", "Home")); }
public async Task <IActionResult> Index(AccountsModel accountsModel) { // Set Meta Data ViewData["Title"] = "Sign Up"; ViewData["ContentKeywords"] = functions.GetSiteLookupData("MetaKeywords"); ViewData["ContentDescription"] = functions.GetSiteLookupData("MetaDescription"); ViewData["PostAuthor"] = ""; if (ModelState.IsValid) { //verify password match string ConfirmPassword = Request.Form["ConfirmPassword"]; if (!functions.PasswordsMatch(accountsModel.Password, ConfirmPassword)) { TempData["ErrorMessage"] = "Passwords do not match"; return(View(accountsModel)); } //verify email does not exist if (_context.Accounts.Any(s => s.Email == accountsModel.Email)) { TempData["ErrorMessage"] = "Email already exists, please choose a different email"; return(View(accountsModel)); } try { //set registration default values accountsModel.AccountID = functions.GetGuid(); accountsModel.DirectoryName = functions.GenerateDirectoryName(accountsModel.Email); accountsModel.Active = 0; accountsModel.Oauth = 0; accountsModel.EmailVerification = 0; accountsModel.UpdatedBy = accountsModel.AccountID; accountsModel.UpdateDate = DateTime.Now; accountsModel.DateAdded = DateTime.Now; //hashing password with BCrypt accountsModel.Password = BCrypt.Net.BCrypt.HashPassword(accountsModel.Password); _context.Add(accountsModel); await _context.SaveChangesAsync(); //add account id to account details if (!_context.AccountDetails.Any(s => s.AccountID == accountsModel.AccountID)) { functions.AddTableData("AccountDetails", "AccountID", accountsModel.AccountID, _systemConfiguration.connectionString); } //send user email //set email data string ToName = functions.GetAccountData(accountsModel.AccountID, "FullName"); string[] MessageParagraphs = { "Hello " + ToName + ", ", "Thank you for registering to " + functions.GetSiteLookupData("SiteName") + ".", "Your registration would be reviewed by our team and you would be notified once approved.", "This may take up to 24 hours." }; string PreHeader = "New account registration notification."; bool Button = false; int ButtonPosition = 2; string ButtonLink = null; string ButtonLinkText = null; string Closure = _systemConfiguration.emailClosure; string Company = _systemConfiguration.emailCompany; string UnsubscribeLink = _systemConfiguration.emailUnsubscribeLink; string MessageBody = EmailFormating.FormatEmail(MessageParagraphs, PreHeader, Button, ButtonPosition, ButtonLink, ButtonLinkText, Closure, Company, UnsubscribeLink); string FromEmail = _systemConfiguration.smtpEmail; string ToEmail = accountsModel.Email; string Subject = "Account Registration Email"; //Get smtp details string smtpEmail = _systemConfiguration.smtpEmail; string smtpPass = _systemConfiguration.smtpPass; string displayName = _systemConfiguration.emailDisplayName; string smtpHost = _systemConfiguration.smtpHost; int smtpPort = _systemConfiguration.smtpPort; EmailService.SendEmail(FromEmail, ToEmail, Subject, MessageBody, smtpEmail, smtpPass, displayName, smtpHost, smtpPort); //log activity if (_systemConfiguration.logActivity) { string LogAction = $@"User '{ToName}' registered."; functions.LogActivity(accountsModel.AccountID, accountsModel.AccountID, "NewRegistration", LogAction); } TempData["SuccessMessage"] = "Thank you for registering. Your registration would be reviewed by our team and you would be notified once approved. This may take up to 24 hours."; return(RedirectToAction("Index", "SignIn")); } catch (Exception ex) { //Log Error _logger.LogInformation("Sign Up Error: " + ex.ToString()); TempData["ErrorMessage"] = "There was an error processing your request. Please try again. If this error persists, please send an email."; } } return(View(accountsModel)); }