public ActionResult SMTPSettingsEdit(ToolsSMTPSetting model) { if (ModelState.IsValid) { db.Entry(model).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("SMTPSettings", "SiteTools", null)); } return(View(model)); }
//============================================================ //============================================================ // используется в проекте // подтверждение почтового ящика пользователя // отправка письма public bool GenerateEmailConfirmation(string id) { ApplicationUser user = UserManager.FindById(id); // загрузка настроек smtp ToolsSMTPSetting smtpSetting = db.ToolsSMTPSettings.FirstOrDefault(); // генерация кода Guid codeGUID = Guid.NewGuid(); string code = codeGUID.ToString(); user.CodesVerificationEmail = new CodesVerificationEmail(); user.CodesVerificationEmail.Code = code; UserManager.Update(user); string callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // отправка письма string body = "Подтвердите ваш e-mail адрес перейдя <a href=\"" + callbackUrl + "\">по этой ссылке</a>"; string title = "Подтверждение E-mail адреса"; bool sendResult = MailSender.SendRmail(smtpSetting, code, title, body, user.Email); return(sendResult); }
public static bool SendRmail(ToolsSMTPSetting smtpSetting, string code, string title, string body, string email) { bool result = false; // var message = new MailMessage(); message.To.Add(new MailAddress(email)); message.From = new MailAddress(smtpSetting.EmailFrom); message.Subject = title + " " + "Интернет магазин - \"РосКвартал\""; message.Body = body; message.IsBodyHtml = true; using (var smtp = new SmtpClient()) { var credential = new NetworkCredential { UserName = smtpSetting.UserName, Password = smtpSetting.Password }; smtp.Credentials = credential; smtp.Host = smtpSetting.Host; smtp.Port = smtpSetting.Port; smtp.EnableSsl = smtpSetting.EnableSsl; try { smtp.Send(message); result = true; } catch { result = false; } } return(result); }
//============================================================ //============================================================ // используется в проекте // сброс пароля - отправка письма с кодом // отправка письма public bool GeneratePasswordReset(string id) { ApplicationUser user = UserManager.FindById(id); // загрузка настроек smtp ToolsSMTPSetting smtpSetting = db.ToolsSMTPSettings.FirstOrDefault(); // генерация кода Guid codeGUID = Guid.NewGuid(); string code = codeGUID.ToString(); user.CodesResetPassword = new CodesResetPassword(); user.CodesResetPassword.Code = code; UserManager.Update(user); string callbackUrl = Url.Action("ResetPassword", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // отправка письма string body = "Для восстановления доступа к вашему аккаунту перейдите <a href=\"" + callbackUrl + "\">по этой ссылке</a>"; string title = "Восстановление доступа"; bool sendResult = MailSender.SendRmail(smtpSetting, code, title, body, user.Email); return(sendResult); }
protected override void Seed(ShopRosKvartal.Models.ApplicationDbContext context) { var userManager = new ApplicationUserManager(new UserStore <ApplicationUser>(context)); var roleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(context)); //============================================================ //инициализация ролей if (!context.Roles.Any()) { // создание роли var role = new IdentityRole { Name = "Администратор" }; // добавление роли в бд roleManager.Create(role); role = new IdentityRole { Name = "Модератор" }; roleManager.Create(role); role = new IdentityRole { Name = "Покупатель" }; roleManager.Create(role); } //============================================================ //============================================================ //создание админа для пустой БД var admin = userManager.FindByName("Admin"); if (admin == null || !context.Users.Any()) { // создание админа admin = new ApplicationUser { Email = "*****@*****.**", UserName = "******" }; string password = "******"; var result = userManager.Create(admin, password); // если создание пользователя прошло успешно if (result.Succeeded) { var role = roleManager.FindByName("Администратор"); if (role != null) { // добавляем для пользователя роль userManager.AddToRole(admin.Id, role.Name); } else { // создание роли role = new IdentityRole { Name = "Администратор" }; // добавление роли в бд roleManager.Create(role); // добавляем для пользователя роль userManager.AddToRole(admin.Id, role.Name); } } } //============================================================ //============================================================ //инициализация SMTP сервера if (!context.ToolsSMTPSettings.Any()) { ToolsSMTPSetting smtp = new ToolsSMTPSetting(); smtp.EmailFrom = "*****@*****.**"; smtp.UserName = "******"; smtp.Password = "******"; smtp.Host = "smtp.gmail.com"; smtp.Port = 587; smtp.EnableSsl = true; context.ToolsSMTPSettings.Add(smtp); context.SaveChanges(); } //============================================================ //============================================================ //инициализация таблицы полов пользователей if (!context.UserGenders.Any()) { UserGender gender = new UserGender(); gender.Gender = "Мужской"; context.UserGenders.Add(gender); context.SaveChanges(); gender.Gender = "Женский"; context.UserGenders.Add(gender); context.SaveChanges(); } //============================================================ //============================================================ //инициализация таблицы категории if (!context.ShopCategories.Any()) { ShopCategory parent = new ShopCategory(); parent.Name = "Спортивное питание"; parent.Alias = Translit.TranslitString(parent.Name); context.ShopCategories.Add(parent); context.SaveChanges(); //----------------------------------------------- ShopCategory child = new ShopCategory { Name = "Протеины", ParentId = parent.Id }; child.Alias = Translit.TranslitString(child.Name); context.ShopCategories.Add(child); context.SaveChanges(); //----------------------------------------------- child = new ShopCategory { Name = "Гейнеры", ParentId = parent.Id }; child.Alias = Translit.TranslitString(child.Name); context.ShopCategories.Add(child); context.SaveChanges(); } //============================================================ //============================================================ //инициализация таблицы вкус товара if (!context.ShopProductsTastes.Any()) { string[] tastes = { "Ваниль", "Клубника", "Шоколад", "Карамель-ваниль", "Малина-шоколад", "Миндаль-шоколад", "Малина", "Банан", "Вишня", "Абрикос", "Персик", "Апельсин" }; for (int i = 0; i < tastes.Length; i++) { ShopProductsTaste taste = new ShopProductsTaste { Name = tastes[i] }; context.ShopProductsTastes.Add(taste); context.SaveChanges(); } } //============================================================ //============================================================ //инициализация таблицы брэнды if (!context.ShopProductsBrands.Any()) { string[] brands = { "Optimum Nutrition", "Multipower", "BSN", "Dymatize", "MuscleTech", "Weider", "Sponser", "Twinlab", "Gaspari Nutrition", "Universal Nutrition" }; for (int i = 0; i < brands.Length; i++) { ShopProductsBrand brand = new ShopProductsBrand { Name = brands[i], Alias = brands[i].Replace(" ", "-") }; context.ShopProductsBrands.Add(brand); context.SaveChanges(); } } //============================================================ }
//========================================================== //========================================================== //==== Редактирование настроек почтового сервиса (SMTP) ==== //======================= Метод GET ======================== public ActionResult SMTPSettingsEdit() { ToolsSMTPSetting smtp = db.ToolsSMTPSettings.FirstOrDefault(); return(View(smtp)); }