Beispiel #1
0
        public ActionResult Index(ContactusViewModel vm)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    MailMessage msg = new MailMessage();
                    msg.From = new MailAddress(vm.Email);
                    msg.To.Add(new MailAddress("*****@*****.**"));
                    msg.Subject = vm.Subject;

                    string userMessage = "";
                    userMessage    = "<br/>Name :" + vm.Name;
                    userMessage    = userMessage + "<br>Email Id: " + vm.Email;
                    userMessage    = userMessage + "<br/>Subject: " + vm.Subject;
                    userMessage    = userMessage + "<br/>Message: " + vm.Message;
                    msg.Body       = "Hi, <br/><br/> A new enquiry by user. Detail is as follows:<br/><br/> " + userMessage + "<br/><br/>Thanks";
                    msg.IsBodyHtml = true;

                    SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", Convert.ToInt32(587));
                    System.Net.NetworkCredential credentials = new System.Net.NetworkCredential("*****@*****.**", "Qwert12345.");
                    smtpClient.Credentials = credentials;
                    smtpClient.EnableSsl   = true;
                    smtpClient.Send(msg);
                    ModelState.Clear();
                    ViewBag.Message = "Thank you for Contacting us ";
                }
                catch (Exception ex)
                {
                    ModelState.Clear();
                    ViewBag.Message = $" Sorry we are facing Problem here {ex.Message}";
                }
            }
            return(View());
        }
        public ActionResult Contactus()
        {
            // if  is logged iusern and logged in user is not member then redirect to admin dashboard
            if (User.Identity.IsAuthenticated)
            {
                var user = _dbcontext.Users.Where(x => x.EmailID == User.Identity.Name).FirstOrDefault();
                if (user.RoleID != _dbcontext.UserRoles.Where(x => x.Name.ToLower() == "member").Select(x => x.ID).FirstOrDefault())
                {
                    return(RedirectToAction("Dashboard", "Admin"));
                }
            }

            // viewbag for active class in navigation
            ViewBag.Contactus = "active";
            // check if user is authenticated then we need to show full name and email
            if (User.Identity.IsAuthenticated)
            {
                // if user is authenticated then get user
                var user = _dbcontext.Users.Where(x => x.EmailID == User.Identity.Name).FirstOrDefault();
                // create contact us viewmodel
                ContactusViewModel viewmodel = new ContactusViewModel();

                viewmodel.FullName = user.FirstName + " " + user.LastName;
                viewmodel.Email    = user.EmailID;
                // return viewmodel
                return(View(viewmodel));
            }
            else
            {
                return(View());
            }
        }
        public ActionResult Contactus(ContactusViewModel contactusviewmodel)
        {
            if (ModelState.IsValid)
            {
                // if user is authenticated
                if (User.Identity.IsAuthenticated)
                {
                    var user = _dbcontext.Users.Where(x => x.EmailID == User.Identity.Name).FirstOrDefault();
                    // if user is authenticated then email is same as user's email id that he entered during sign up
                    contactusviewmodel.Email = user.EmailID;
                }
                // send mail
                BuildContactusTemplate(contactusviewmodel);

                return(RedirectToAction("Contactus"));
            }
            else
            {
                return(View(contactusviewmodel));
            }
        }
        // send mail to admin
        public void BuildContactusTemplate(ContactusViewModel contactusviewmodel)
        {
            string from, to, subject, bodytxt, body;

            // get all text from contactus from emailtemplate directory
            bodytxt = System.IO.File.ReadAllText(HostingEnvironment.MapPath("~/EmailTemplate/") + "Contactus" + ".cshtml");
            // replace fullname and comment
            bodytxt = bodytxt.Replace("ViewBag.FullName", contactusviewmodel.FullName.Trim());
            bodytxt = bodytxt.Replace("ViewBag.Comment", contactusviewmodel.Comment.Trim());
            bodytxt = bodytxt.ToString();

            // get support email and notify email
            var fromemail = _dbcontext.SystemConfigurations.Where(x => x.Key == "supportemail").FirstOrDefault();
            var tomail    = _dbcontext.SystemConfigurations.Where(x => x.Key == "notifyemail").FirstOrDefault();

            // set from, to, subject, body
            from    = fromemail.Value.Trim();
            to      = tomail.Value.Trim();
            subject = contactusviewmodel.Subject + " - Query";
            StringBuilder sb = new StringBuilder();

            sb.Append(bodytxt);
            body = sb.ToString();

            // create mailmessage object
            MailMessage mail = new MailMessage();

            mail.From = new MailAddress(from, "NotesMarketplace");
            mail.To.Add(new MailAddress(to));
            mail.Subject    = subject;
            mail.Body       = body;
            mail.IsBodyHtml = true;

            // send mail (NotesMarketplace/SendMail/)
            SendingEmail.SendEmail(mail);
        }