예제 #1
0
 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)
     {
예제 #2
0
        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));
            }
        }