private void SendSubscribtionNotification(IAbonnementProjet newAbo) { int delayNotif = CovCakeConfiguration.SubscriptionNotificationDelay; //TODO: a tester dans un contexte de charge importante (meme si yaura pas 10000 subscribtion en meme temps) //delayNotif = 10; DelayedTaskExecuter.ExecuteLaterAsync(delayNotif, (obj, timedOut) => { IAbonnementProjet abo = obj as IAbonnementProjet; //Apres le delay on verifie si le mec est toujour bien inscrit et on envoi le mail lock (obj) { if (abo.UserProfile.ParticipeA(abo.ProjetId)) { try { CovCakeMailer.SendProjectSubscribtionNotify(abo); CovCakeMailer.SendFriendsProjectSubscribNotify(abo); } catch (Exception) { } } } }, newAbo); }
public ActionResult ChangeEmail(string newmail) { string REZMESSAGE = ""; IUserProfile tMailUser = Data.UserDataAccess.GetUserByMail(newmail.ToLower()); if (String.IsNullOrEmpty(newmail)) { REZMESSAGE = "Vous devez entrer une adresse email."; return(Json(new { code = "1", msg = REZMESSAGE })); } else if (!CovCakeMailer.IsValidEmail(newmail)) { REZMESSAGE = "Cette adresse email est invalide."; return(Json(new { code = "2", msg = REZMESSAGE })); } IUserProfile currUser = this.CurrentUser; currUser.ActivationKey = Guid.NewGuid(); Data.UserDataAccess.Save(); var newMail = newmail.ToLower(); this.CovCakeMailer.SendChangeEmailMail(currUser, newMail); this.ValidStateMessages.Add("Vous avez souhaité changer votre adresse email, un email de confirmation vous a été envoyé."); return(RedirectToRoute(CovCake.Routes.MONCOMPTE)); }
public ActionResult Forgot(string email) { ForgotPassViewData forgot = new ForgotPassViewData(); email = email.Trim(); if (!CovCakeMailer.IsValidEmail(email)) { ModelState.AddModelError("email", "L'adresse email est incorecte."); } IUserProfile userProfile = Data.UserDataAccess.GetUser(email); if (userProfile == null) { ModelState.AddModelError("email", "Aucun utilisateur avec cette adresse n'a été trouvé."); } if (ModelState.IsValid) { string infoMsgTitle = "Mot de passe réinitialisé"; string infoMsg = string.Format("Un email a été envoyé à {0} avec un nouveau mot de passe.", email); //si pas encore activé envoi de activation //TODO: ajouter le user dans la table UserProfile des linscription et pas ke dans le membership /* * if (!userProfile.GetMembershipUser().IsApproved && userProfile.ActivationKey.HasValue) * { * this.CovCakeMailer.SendSignupMail(userProfile, userProfile.Email, "** votre mot de passe ***"); * infoMsg = string.Format("L'email d'activation de compte viens d'être réenvoyé à {0}.", email); * } */ string newPass = CovCakeServices.GenerateAlphaNumPass(int.Parse(CovCakeConfiguration.DefaultPasswordLenght)); newPass = newPass.ToLower(); MembershipUser membershipUser = userProfile.GetMembershipUser(); membershipUser.ChangePassword(membershipUser.ResetPassword(), newPass); // IUserProfile userProfile = Data.UserDataAccess.GetUser(email); this.CovCakeMailer.SendForgotPasswordMail(userProfile, email, newPass); forgot.Email = email; forgot.Succeed = true; return(Info(infoMsgTitle, infoMsg)); //should redirect //return View(forgot); } else { // forgot.Succeed = false; return(View(forgot)); } }
public ActionResult Contact(string nom, string email, string message, string sujet) { if (email.IsNullOrEmpty()) { this.ModelState.AddModelError("email", "Entrer une adresse email."); } else if (!CovCakeMailer.IsValidEmail(email)) { this.ModelState.AddModelError("email", "L'adresse email est invalide!"); } if (message.IsNullOrEmpty()) { this.ModelState.AddModelError("message", "Merci d'entrer un message."); } if (sujet.IsNullOrEmpty()) { this.ModelState.AddModelError("sujet", "Merci de préciser un sujet."); } if (nom.IsNullOrEmpty()) { this.ModelState.AddModelError("nom", "Merci de spécifier un nom"); } if (this.ModelState.IsValid) { try { CovCakeMailer.SendContactMail(nom, email, sujet, message, this.Request.UserHostAddress); } catch (Exception ex) { this.ModelState.AddModelError("_FORM", "Votre message n'a pu être envoyé. Vous pouvez toutefois nous contacter à l'adresse suivante : [email protected]"); } } if (this.ModelState.IsValid) { this.ValidStateMessages.Add("Votre message a bien été envoyé merci !"); this.ModelState.Clear(); } return(View()); }
private void SendProjetResignNotification(IAbonnementProjet abo) { CovCakeMailer.SendProjectResignNotify(abo); /* * int delayNotif = 30; * DelayedTaskExecuter.ExecuteLaterAsync(delayNotif, (obj, timedOut) => * { * //Apres le delay on verifie si le mec est toujour bien inscrit et on envoi le mail * lock (obj) * { * try * { * CovCakeMailer.SendProjectResignNotify(abo); * } * catch (Exception) * { * } * } * * }, abo); * */ }
protected BaseController() : this(Membership.Provider) { this.CovCakeMailer = new CovCakeMailer(this); this.ValidStateMessages = new List <string>(); }
public ActionResult Inscription(UserInfosViewData registerData) { //string nom = form["nom"].ToTitleCase(); //string prenom = form["prenom"].ToTitleCase(); //string age_jour = form["age_jour"]; //string age_mois = form["age_mois"]; //string age_annee = form["sexe"]; //string sexe = form["age_annee"]; //string numdept = form["numdept"]; //string ville = form["ville"]; //string password = form["password"]; //string confirmPassword = form["confirmPassword"]; //string email = form["email"].ToLower(); string nom = registerData.nom.ToTitleCase().Trim(); string prenom = registerData.prenom.ToTitleCase().Trim(); string age_jour = registerData.age_jour; string age_mois = registerData.age_mois; string age_annee = registerData.age_annee; string sexe = registerData.sexe; string numdept = registerData.numdept; string ville = registerData.ville.ToTitleCase().Trim(); string password = registerData.password; string confirmPassword = registerData.confirmPassword; string email = registerData.email.ToLower().Trim(); ViewData["PasswordLength"] = this.MembershipUserManager.MinRequiredPasswordLength; // Basic parameter validation if (String.IsNullOrEmpty(email)) { ModelState.AddModelError("email", "Vous devez entrer une adresse email."); } else if (!CovCakeMailer.IsValidEmail(email)) { ModelState.AddModelError("email", "Cette adresse email est invalide."); } if (password == null || password.Length < this.MembershipUserManager.MinRequiredPasswordLength) { ModelState.AddModelError("password", String.Format(CultureInfo.CurrentCulture, "Le mot de passe doit être composé d'au moins {0} caracteres.", this.MembershipUserManager.MinRequiredPasswordLength)); } if (string.IsNullOrEmpty(nom)) { ModelState.AddModelError("nom", "Vous devez entrer un nom, seule son initiale sera affichée (ex: Julien C)."); } if (string.IsNullOrEmpty(prenom)) { ModelState.AddModelError("prenom", "Vous devez entrer un prénom."); } if (!String.Equals(password, confirmPassword, StringComparison.Ordinal)) { ModelState.AddModelError("confirmPassword", "Le mot de passe et sa confirmation ne correspondent pas."); } if (ViewData.ModelState.IsValid) { // Attempt to register the user MembershipCreateStatus createStatus; MembershipUser newUser = this.MembershipUserManager.CreateUser(email, password, email, null, null, false, null, out createStatus); if (newUser != null) { using (TransactionScope trans = new TransactionScope()) { Guid userID = (Guid)newUser.ProviderUserKey; int ageAnnee = 1900 + int.Parse(age_annee); DateTime dateNaiss = new DateTime(ageAnnee, int.Parse(age_mois), int.Parse(age_jour)); IUserProfile user = Data.UserDataAccess.CreateUser(userID, nom, prenom, dateNaiss, bool.Parse(sexe)); user.NumDepartement = numdept; user.Ville = ville; user.ActivationKey = Guid.NewGuid(); //Insert in table Data.UserDataAccess.InsertUser(user); ViewData["email"] = email; if (CovCakeConfiguration.ConfirmRegistration) { //envoi de mail de confirm bool rezsend = this.CovCakeMailer.SendSignupMail(user, email, password); if (rezsend == false) { return(Error("Une erreur est survenue lors de votre enregistrement.")); } trans.Complete(); return(View("PendingRegistration", user)); } else { //Envoi mail de bienvenue this.CovCakeMailer.SendSignupConfirmation(user, email, password); //activation directe this.ActivateAccount(user.ActivationKey.Value); trans.Complete(); return(HomeIndex()); //RedirectToAction("Index", "Home"); } } } else { this.SetModelError(createStatus); } } // If we got this far, something failed, redisplay form // UpdateModel(registerData); return(View(registerData)); }
//Send Email notification !!! #region Send email notififcation private void SendProjetEditNotification(IProjet proj) { CovCakeMailer.SendProjetEditNotify(proj); }