public async Task<ActionResult> ContactSubmit( [Bind(Include = "FromName, FromEmail, FromPhone, Message, ContactId")] ContactViewModel model) { if (!await RecaptchaServices.Validate(Request)) { ModelState.AddModelError(string.Empty, "You have not confirmed that you are not a robot"); } if (ModelState.IsValid) {
public async Task <ActionResult> Index([Bind(Include = "Id,Email,Name,Phone,Message")] EmailViewModel model) { if (!await RecaptchaServices.Validate(Request)) { TempData["ErrMessage"] = string.Format("Your request was denied -- Google Recaptcha v.2.0"); } if (ModelState.IsValid) { GuestEmail set = new GuestEmail { Id = model.Id, Email = model.Email, Name = model.Name, Phone = model.Phone, Message = model.Message, }; try { var credentialUserName = ConfigurationManager.AppSettings["SendGrid_UserName"]; var sendGridPassword = ConfigurationManager.AppSettings["SendGrid_Password"]; var message = new MailMessage(); using (var smtp = new SmtpClient("smtp.sendgrid.net", Convert.ToInt32(587))) { message.To.Add(new MailAddress(model.Email)); String bodyBuilder = ""; message.From = new MailAddress("*****@*****.**"); message.Subject = "RadProSite Auto Response"; using (StreamReader read = new StreamReader(Server.MapPath("~/Views/Shared/EmailTemplates/AutoResponseTheme.html"))) { bodyBuilder += read.ReadToEnd(); } message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(bodyBuilder, null, MediaTypeNames.Text.Html)); smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; smtp.UseDefaultCredentials = false; NetworkCredential credentials = new NetworkCredential(credentialUserName, sendGridPassword); smtp.EnableSsl = true; smtp.Credentials = credentials; await smtp.SendMailAsync(message); } set.Status = "Potential"; set.UserIpAddress = HttpContext.Request.UserHostAddress; set.ReceivedDate = DateTime.UtcNow; db.GuestEmails.Add(set); TempData["message"] = string.Format("Yes " + "{0} we received your email.", model.Name); db.SaveChanges(); } catch (Exception ex) { return(View("Error", new HandleErrorInfo(ex, "Home", "Index"))); } return(RedirectToAction("Index")); } else { TempData["ErrMessage"] = string.Format("Your contact form was incomplete!"); return(View(model)); } }