public ActionResult NewEmail(NewEmailModel mail)
        {
            if (String.IsNullOrEmpty(mail.TmpDir)) throw new ArgumentException();
            String tmpDir = Path.Combine(StorageFolder, "tmp", mail.TmpDir);
            if (!System.IO.Directory.Exists(tmpDir))
            {
                System.IO.Directory.CreateDirectory(tmpDir);
            }

            return View(mail);
        }
        public JsonResult SendEmail(NewEmailModel mail)
        {
            if (String.IsNullOrEmpty(mail.TmpDir)) throw new ArgumentException();
            String tmpDir = Path.Combine(StorageFolder, "tmp", mail.TmpDir);
            mail.ReplaceNullWithEmpty();

            string[] tos = mail.To.Split(new string[] { ",", ";" }, StringSplitOptions.RemoveEmptyEntries);
            string[] ccs = mail.CC.Split(new string[] { ",", ";" }, StringSplitOptions.RemoveEmptyEntries);
            string[] bccs = mail.BCC.Split(new string[] { ",", ";" }, StringSplitOptions.RemoveEmptyEntries);

            MailMessage message = new MailMessage();
            if (!string.IsNullOrEmpty(mail.From))
            {
                message.From = new MailAddress(mail.From);
            }
            else
            {
                message.From = new MailAddress(ConfigurationManager.AppSettings["smtpFrom"]);
            }

            for (int i = 0; i < tos.Length; i++)
            {
                message.To.Add(tos[i]);
            }
            for (int i = 0; i < ccs.Length; i++)
            {
                message.CC.Add(ccs[i]);
            }
            for (int i = 0; i < bccs.Length; i++)
            {
                message.Bcc.Add(bccs[i]);
            }
            if (mail.CCSender) message.CC.Add(mail.From);

            message.Subject = mail.Subject;
            message.Body = mail.Body;
            message.IsBodyHtml = true;

            //move files
            for (int i = 0; i < mail.Attachments.Count; i++)
            {
                EmailAttachment attachment = mail.Attachments[i];
                string source = Path.Combine(StorageFolder, attachment.UniqueFileName);
                string destination = Path.Combine(tmpDir, attachment.FileName);
                System.IO.File.Move(source, destination);
            }

            //add attachments
            DirectoryInfo dir = new DirectoryInfo(tmpDir);
            FileInfo[] files = dir.GetFiles();
            for (int i = 0; i < files.Length; i++)
            {
                message.Attachments.Add(new Attachment(files[i].FullName));
            }

            //send email using smtp
            using (SmtpClient smtpServer = new SmtpClient(ConfigurationManager.AppSettings["smtpServer"], Int32.Parse(ConfigurationManager.AppSettings["smtpPort"])))
            {
                smtpServer.Credentials = new System.Net.NetworkCredential(ConfigurationManager.AppSettings["smtpUserName"], ConfigurationManager.AppSettings["smtpPassword"]);
                smtpServer.EnableSsl = Boolean.Parse(ConfigurationManager.AppSettings["smtpEnableSSL"]);
                smtpServer.Send(message);

            }
            message.Dispose();

            //cleanup tmp dir
            dir.Delete(true);

            return Json(new { Success = true }, JsonRequestBehavior.AllowGet);
        }