public bool SendMail(User user, Mailing mail, Price price, MidiFile file)
        {
            if (user.Email == null)
                return false;

            if (price != null)
            {
                if (UpdatePromotionalPricing(user, price) == false)
                    return false;
            }

            try
            {
                SmtpClient client = new SmtpClient("m02.internetmailserver.net", 587);
                client.EnableSsl = false;
                MailAddress from = new MailAddress("*****@*****.**", "PianoCrumbs.com");
                MailAddress to = new MailAddress(user.Email, "");
                MailMessage message = new MailMessage(from, to);
                message.Subject = mail.Subject;
                message.IsBodyHtml = true;

                string fileName = "";
                string urlAction = "";

                if (file != null)
                {
                    fileName = file.Name;
                    urlAction = Url.Action("MidiView", "Crumbs", new { id = file.MidiID, name = file.DisplayName }, "http");
                }

                string latestLinks = "";
                IQueryable<MidiFile> latestFiles = crumbsRepository.LatestCrumbs.Take(5);
                foreach (var item in latestFiles)
                {
                    string url = Url.Action("MidiView", "Crumbs", new { id = item.MidiID, name = item.DisplayName }, "http");
                    latestLinks += string.Format("<p><a href='{0}'>{0}</a></p>", url);
                }

                string popualrLinks = "";
                IQueryable<MidiFile> popularFiles = crumbsRepository.RatedCrumbs.Take(5);
                foreach (var item in popularFiles)
                {
                    string url = Url.Action("MidiView", "Crumbs", new { id = item.MidiID, name = item.DisplayName }, "http");
                    popualrLinks += string.Format("<p><a href='{0}'>{0}</a></p>", url);
                }

                message.Body = string.Format(mail.Text, user.UserName, fileName, urlAction, latestLinks, popualrLinks);

                string unsubLink = Url.Action("Unsubscribe", "Account", new { username = user.UserName, reset = CrumbsExtensions.HashResetParams(user.UserName, user.UserKey) }, Request.Url.Scheme);
                message.Body += "<p><a href='" + unsubLink + "'>Unsubscribe</a>";

                NetworkCredential myCreds = new NetworkCredential("*****@*****.**", "Crumbs123", "");
                client.Credentials = myCreds;

                client.Send(message);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception is:" + ex.ToString());
                return false;
            }

            SentMail sent = new SentMail();
            sent.UserID = user.UserID;
            sent.MailID = mail.ID;
            sent.Date = DateTime.Now;

            crumbsRepository.InsertOrUpdateSentMail(sent);
            crumbsRepository.Save();

            return true;
        }
        public ActionResult CreateMailing(Mailing crumbsmodel)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    crumbsRepository.InsertOrUpdateMailing(crumbsmodel);
                    crumbsRepository.Save();
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Exception is:" + ex.ToString());
                }

                return RedirectToAction("MassMail");
            }

            return View(crumbsmodel);
        }
 public ActionResult EditMailing(Mailing crumbsmodel)
 {
     if (ModelState.IsValid && crumbsmodel.ID > 0)
     {
         crumbsRepository.InsertOrUpdateMailing(crumbsmodel);
         crumbsRepository.Save();
         return RedirectToAction("MassMail");
     }
     return View(crumbsmodel);
 }
 public ActionResult CreateMailing()
 {
     Mailing crumbsmodel = new Mailing();
     return View(crumbsmodel);
 }