public async Task <JsonResult> SendCode(string id) { try { var userStore = NewUserStore(); var user = await userStore.FindByIdAsync(id); if (user == null) { return(Json(new ResponseData() { message = "Kullanıcı bulunamnadu", success = false })); } if (user.EmailConfirmed) { return(Json(new ResponseData() { message = "Kullanıcı zaten e postasını onaylamıs", success = false })); } user.ActivationCode = StringHelpers.GetCode(); await userStore.UpdateAsync(user); userStore.Context.SaveChanges(); string SiteUrl = Request.Url.Scheme + System.Uri.SchemeDelimiter + Request.Url.Host + (Request.Url.IsDefaultPort ? "" : ":" + Request.Url.Port); var emailService = new EMailService(); var body = $"Merhaba <b>{user.Name} {user.Surname}</b><br>Hesabınızı aktif etmek için aşadıdaki linke tıklayınız<br> <a href='{SiteUrl}/account/activation?code={user.ActivationCode}' >Aktivasyon Linki </a> "; await emailService.SendAsync(new IdentityMessage() { Body = body, Subject = "Sitemize hoşgeldiniz" }, user.Email); return(Json(new ResponseData() { message = "Kullanıcıya yeni aktivasyon maili gönderildi", success = false })); } catch (Exception ex) { return(Json(new ResponseData() { message = $"Bir hata oluştu: {ex.Message}", success = false })); } }
public JsonResult TestSMTP(string destinationAddress) { var resultTest = false; var eMailService = new EMailService(); try { eMailService.SendAsync("Teste de envio de e-mail", "Teste", destinationAddress); resultTest = true; } catch (Exception) { HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest; resultTest = false; } return(Json(resultTest, JsonRequestBehavior.AllowGet)); }
public Task SendAsync(IdentityMessage message) { eMailService.SendAsync(message.Body, message.Subject, message.Destination); return(Task.FromResult(0)); }
public async Task <ActionResult> Register(RegisterLoginViewModel model) { if (!ModelState.IsValid) { return(View("Index", model));//ındex view ını modelle çalıştıryprum. } try { var userStore = NewUserStore(); //veritabanı işlemi yapcağımız için Store kullanırız. var userManager = NewUserManager(); //yukarda static kütüphane seklinde tanımlamasaydık MembershipTools.Newusermanager yazardık. var roleManager = NewRoleManager(); //registerviewmodelde propertlere tanımladığımız isim username ... leri formda doldurup rm ye atıyoruz. var rm = model.RegisterViewModel; //Kullanıcı varmı yokmu diye bakmak için kullanıyoruz. var user = await userManager.FindByNameAsync(rm.UserName); //username e göre arıyor. if (user != null) { ModelState.AddModelError("UserName", "Bu kullanıcı daha önce alınmıştır."); return(View("Index", model)); } var newUser = new User()//Kullanıcıyı değişkene atıyprum. { UserName = rm.UserName, Email = rm.Email, Name = rm.Name, Surname = rm.Surname, ActivationCode = StringHelpers.GetCode() }; //Kullanıcı oluşturuyoruz. var result = await userManager.CreateAsync(newUser, rm.Password); //password ü ayrı alıyor çünkü şifrelicek. if (result.Succeeded) //İlk kullanıcıysa admin yapalım. { if (userStore.Users.Count() == 1) { await userManager.AddToRoleAsync(newUser.Id, "Admin");//içine userıd ve role alır. } else//ilk kaydettiğimiz admin oldu sonrakiler user olarak buraya düşüyor. { await userManager.AddToRoleAsync(newUser.Id, "User"); } string SiteUrl = Request.Url.Scheme + System.Uri.SchemeDelimiter + Request.Url.Host + (Request.Url.IsDefaultPort ? "" : ":" + Request.Url.Port); var emailService = new EMailService(); var body = $"Merhaba <b>{newUser.Name} {newUser.Surname}</b><br>Hesabınızı aktif etmek için aşadıdaki linke tıklayınız<br> <a href='{SiteUrl}/account/activation?code={newUser.ActivationCode}' >Aktivasyon Linki </a> "; await emailService.SendAsync(new IdentityMessage() { Body = body, Subject = "Sitemize Hoşgeldiniz" }, newUser.Email); //mailin gitmesi için newUser.Email eklemeliyiz. } else { var err = ""; foreach (var resultError in result.Errors) { err += resultError + " "; } ModelState.AddModelError("", err); return(View("Index", model)); } TempData["Message"] = "Kaydınız basarıyla alınmıştır"; return(RedirectToAction("Index")); } catch (Exception ex) { TempData["Model"] = new ErrorViewModel() { Text = $"Bir hata oluştu {ex.Message}", ActionName = "Index", ControllerName = "Account", ErrorCode = 500 }; return(RedirectToAction("Error", "Home")); } }