public ActionResult Desinscription(int id)
 {
     var infoVM = new InfoViewModel
     {
         TitrePage = "Désinscription de la lettre d'information d'Hermétistes"
     };
     Utilisateurs u = db.Utilisateurs.Find(id);
     if (u == null)
     {
         infoVM.ResumeInfoTitre = "Erreur";
         infoVM.DetailInfo = "L'utilisateur ayant cherché à se désinscrire n'existe plus.";
     }
     else {
         u.InscritLettreInfo = false;
         try
         {
             db.SaveChanges();
             infoVM.ResumeInfoTitre = "Désinscription enregistrée.";
             infoVM.DetailInfo = u.Prenom + " " + u.Nom + ", vous avez bien été enlevé(e) de notre liste de diffusion.";
             infoVM.Ajout = "<p> Si c'est une erreur, vous pouvez vous réinscrire "
                                     +"en cliquant <a href='/Admin/Publipostage/Inscription/" + u.IdUtilisateur + "'> ici</a></p>." ;
         }
         catch
         {
             infoVM.ResumeInfoTitre = "Echec de la désinscription.";
             infoVM.DetailInfo = u.Prenom + " " + u.Nom + ", un problème est survenu lors de votre désinscription de notre liste de diffusion.";
             infoVM.Ajout = "<p>Nous vous conseillons de réessayer dans quelques instants.</p>" ;
         }
     }
     return View("Info", infoVM);
 }
        public ActionResult EnvoiLettreInfo(LettreInfoViewModel lettreInfoVM)
        {
            if (!ModelState.IsValid)
            {
                return View("Index");
            }
            var destinataires = db.Utilisateurs
                                    .Where(u => (bool)u.InscritLettreInfo == true)
                                    .Select(u => new { u.IdUtilisateur, u.Prenom, u.Nom, u.AspNetUsers.Email });
            foreach (var dest in destinataires)
            {
                string AdresseLienDesinscription = Url.Action("Desinscription", "Publipostage", new { id = dest.IdUtilisateur }, "http");

                var chaineDest = dest.Prenom + " " + dest.Nom + " <" + dest.Email + ">";
                var mailMessage = new MailMessage("Hermétistes Voyages <*****@*****.**>", chaineDest);
                var client = new SmtpClient
                {
                    Host = "smtp.neggruda.net",
                    Port = 2525,
                    UseDefaultCredentials = false,
                    DeliveryMethod = SmtpDeliveryMethod.Network,
                    EnableSsl = false,
                    Credentials = new NetworkCredential("*****@*****.**", "7VfrdsAw")
                };
                mailMessage.Subject = lettreInfoVM.Objet;
                string corpsMessage = lettreInfoVM.Corps;
                corpsMessage = corpsMessage.Replace("@Nom", dest.Nom);
                corpsMessage = corpsMessage.Replace("@Prenom", dest.Prenom);
                if (lettreInfoVM.AdresseLien != "") {
                    corpsMessage += "\n\n" + lettreInfoVM.AdresseLien;
                }
                corpsMessage += "\n\nPour vous désinscrire de cette lettre d'information, cliquez sur le lien ci-dessous.";
                corpsMessage += "\n"+AdresseLienDesinscription;
                mailMessage.Body = corpsMessage;
                //mailMessage.To.Add();
                client.Send(mailMessage);
            }
            var infoVM = new InfoViewModel
            {
                TitrePage = "Confirmation d'envoi de la lettre d'information",
                ResumeInfoTitre = "Envoi réussi.",
                DetailInfo = "La lettre d'information a été envoyée."
            };
            //return RedirectToAction("Desinscription");
            return View("Info", infoVM);
        }
 public ActionResult Inscription(int id)
 {
     var infoVM = new InfoViewModel
     {
         TitrePage = "Inscription à la lettre d'information d'Hermétistes"
     };
     Utilisateurs u = db.Utilisateurs.Find(id);
     if (u == null)
     {
         infoVM.ResumeInfoTitre = "Erreur";
         infoVM.DetailInfo = "L'utilisateur ayant cherché à s'inscrire n'existe plus.";
     }
     else {
         u.InscritLettreInfo = true;
         try
         {
             db.SaveChanges();
             infoVM.ResumeInfoTitre = "Inscription enregistrée.";
             infoVM.DetailInfo = u.Prenom + " " + u.Nom + ", vous avez bien été inscrit(e) à notre liste de diffusion.";
         }
         catch
         {
             infoVM.ResumeInfoTitre = "Echec de l'inscription.";
             infoVM.DetailInfo = u.Prenom + " " + u.Nom + ", un problème est survenu lors de votre inscription à notre liste de diffusion.";
             infoVM.Ajout = "<p>Nous vous conseillons de réessayer dans quelques instants.</p>";
         }
     }
     return View("Info", infoVM);
 }