public async Task <IActionResult> Index(CheckoutViewModel model, string braintreeNonce) { ViewData["clientToken"] = await _braintreeGateway.ClientToken.GenerateAsync(); if (string.IsNullOrEmpty(braintreeNonce)) { this.ModelState.AddModelError("nonce", "We're unable to validate this credit card"); } var message = new SendGrid.Helpers.Mail.SendGridMessage { From = new SendGrid.Helpers.Mail.EmailAddress( "*****@*****.**", "No-Reply"), //Subject = "Receipt for order #" + order.ID, HtmlContent = "Thanks for your order!" }; message.AddTo(model.ContactEmail); await _emailSender.SendEmailAsync(model.ContactEmail, "Receipt for order #", "Thanks for your order!");; return(RedirectToAction("index", "receipt")); }
// Use NuGet to install SendGrid (Basic C# client lib) private async Task ConfigSendGridAsync(IdentityMessage message) { var myMessage = new SendGrid.Helpers.Mail.SendGridMessage(); myMessage.AddTo(message.Destination); myMessage.From = new SendGrid.Helpers.Mail.EmailAddress( ConfigurationManager.AppSettings["mailSenderAddress"], ConfigurationManager.AppSettings["mailSenderName"]); myMessage.Subject = message.Subject; myMessage.HtmlContent = message.Body; //var credentials = new NetworkCredential( // ConfigurationManager.AppSettings["mailAccount"], // ConfigurationManager.AppSettings["mailPassword"] // ); // Create a SendGrid client for sending email. var client = new SendGridClient(ConfigurationManager.AppSettings["mailSendGridApiKey"]); // Send the email. if (client != null) { await client.SendEmailAsync(myMessage); } else { Trace.TraceError("Failed to create Web transport."); await Task.FromResult(0); } }
public void SendMessageTest() { SendGrid.Helpers.Mail.SendGridMessage message = null; var sendgridClient = new Mock <SendGrid.ISendGridClient>(); sendgridClient.Setup(x => x.SendEmailAsync(It.IsAny <SendGrid.Helpers.Mail.SendGridMessage>(), It.IsAny <System.Threading.CancellationToken>())) .Callback <SendGrid.Helpers.Mail.SendGridMessage, System.Threading.CancellationToken>((x, c) => message = x) .ReturnsAsync(It.IsAny <SendGrid.Response>()); string ToAddress = "*****@*****.**"; string FromAddress = "*****@*****.**"; string Subject = "Subject"; string BodyHtml = "<p>Body</p>"; string BodyPlainText = "Body"; var sendgridService = new HPD.Utilities.Email.SendGridEmailService(sendgridClient.Object); sendgridService.SendMessage(ToAddress, FromAddress, Subject, BodyHtml, BodyPlainText); var emailPersonalization = message.Personalizations.First(); Assert.AreEqual(message.From.Email, FromAddress); Assert.AreEqual(emailPersonalization.Subject, Subject); Assert.AreEqual(message.Contents.Where(x => x.Type == "text/html").First().Value, BodyHtml); Assert.AreEqual(message.Contents.Where(x => x.Type == "text/plain").First().Value, BodyPlainText); Assert.AreEqual(emailPersonalization.Tos.First().Email, ToAddress); }
public async Task <IActionResult> ForgotPassword(string email) { var user = await _signInManager.UserManager.FindByEmailAsync(email); if (user != null) { string token = await _signInManager.UserManager.GeneratePasswordResetTokenAsync(user); token = System.Net.WebUtility.UrlEncode(token); string currentUrl = Request.GetDisplayUrl(); System.Uri uri = new Uri(currentUrl); string resetUrl = uri.GetLeftPart(UriPartial.Authority); resetUrl += "/account/resetpassword?id=" + token + "&email=" + email; SendGrid.Helpers.Mail.SendGridMessage message = new SendGrid.Helpers.Mail.SendGridMessage(); message.AddTo(email); message.Subject = "Your password reset token"; message.SetFrom("*****@*****.**"); message.AddContent("text/plain", resetUrl); message.AddContent("text/html", string.Format("<a href=\"{0}\">{0}</a>", resetUrl)); message.SetTemplateId("189fec1e-6985-4cde-bc5f-4eaa90a21daa"); await _sendGridClient.SendEmailAsync(message); } return(RedirectToAction("ForgotPasswordSent")); }
public static void SendEmail(string emailToken, string from, string template, string[] to, string[] cc, string title, ILogger log) { log.LogInformation($"Sending email from {from} with title: {title}"); SendGrid.SendGridClient client = new SendGrid.SendGridClient(emailToken); SendGrid.Helpers.Mail.SendGridMessage message = new SendGrid.Helpers.Mail.SendGridMessage(); message.SetFrom(from); foreach (string item in to) { if (!string.IsNullOrEmpty(item)) { message.AddTo(item); } } foreach (string item in cc) { if (!string.IsNullOrEmpty(item)) { message.AddCc(item); } } message.SetSubject($"GitHub Report: {title}"); message.AddContent(MimeType.Html, template); #if !DEBUG var emailResult = client.SendEmailAsync(message).GetAwaiter().GetResult(); #else File.WriteAllText("output.html", template); #endif }
public async Task <IActionResult> PasswordReset(string email) { var user = await _signInManager.UserManager.FindByEmailAsync(email); if (user != null) { string token = await _signInManager.UserManager.GeneratePasswordResetTokenAsync(user); token = System.Net.WebUtility.UrlEncode(token); string currentUrl = Request.GetDisplayUrl(); System.Uri uri = new Uri(currentUrl); string resetUrl = uri.GetLeftPart(UriPartial.Authority); resetUrl += "/account/newpassword?id=" + token + "&email=" + email; SendGrid.Helpers.Mail.SendGridMessage message = new SendGrid.Helpers.Mail.SendGridMessage(); message.AddTo(email); message.Subject = "Your password reset token"; message.SetFrom("*****@*****.**"); message.AddContent("text/plain", resetUrl); message.AddContent("text/html", string.Format("<a href=\"{0}\">{0}</a>", resetUrl)); await _sendGridClient.SendEmailAsync(message); } //return RedirectToAction("Reset Sent"); return(View()); }
public async Task <IActionResult> ForgotPassword(string email) { var user = await _signInManager.UserManager.FindByEmailAsync(email); if (user != null) { string token = await _signInManager.UserManager.GeneratePasswordResetTokenAsync(user); token = System.Net.WebUtility.UrlEncode(token); //sending the password reset URL string currentUrl = Request.GetDisplayUrl(); // =>gets an URl for the user Uri uri = new Uri(currentUrl); // => splits the URL Object into parts string resetUrl = uri.GetLeftPart(UriPartial.Authority); resetUrl += "/login/resetpassword?id=" + token + "&email=" + email; //=> the resetUrl needs to go to the Login controller. SendGrid.Helpers.Mail.SendGridMessage message = new SendGrid.Helpers.Mail.SendGridMessage(); message.AddTo(email); message.Subject = "Password Reset"; // => this is the email Subject; message.SetFrom("*****@*****.**"); // => this is where it's comming from ; message.AddContent("text/plain", resetUrl); message.AddContent("text/html", string.Format("<a href=\"{0}\">{0}</a>", resetUrl)); await _sendGridClient.SendEmailAsync(message); } return(RedirectToAction("Index", "Login")); }
public async Task <ActionResult> Register(RegisterModel model) { if (ModelState.IsValid) { using (IdentityModels entities = new IdentityModels()) { var userStore = new UserStore <User>(entities); var manager = new UserManager <User>(userStore); manager.UserTokenProvider = new EmailTokenProvider <User>(); var user = new User() { UserName = model.EmailAddress, Email = model.EmailAddress }; IdentityResult result = manager.Create(user, model.Password); if (result.Succeeded) { User u = manager.FindByName(model.EmailAddress); // Creates customer record in Braintree string merchantId = ConfigurationManager.AppSettings["Braintree.MerchantID"]; string publicKey = ConfigurationManager.AppSettings["Braintree.PublicKey"]; string privateKey = ConfigurationManager.AppSettings["Braintree.PrivateKey"]; string environment = ConfigurationManager.AppSettings["Braintree.Environment"]; Braintree.BraintreeGateway braintree = new Braintree.BraintreeGateway(environment, merchantId, publicKey, privateKey); Braintree.CustomerRequest customer = new Braintree.CustomerRequest(); customer.CustomerId = u.Id; customer.Email = u.Email; var r = await braintree.Customer.CreateAsync(customer); string confirmationToken = manager.GenerateEmailConfirmationToken(u.Id); string sendGridApiKey = ConfigurationManager.AppSettings["SendGrid.ApiKey"]; SendGrid.SendGridClient client = new SendGrid.SendGridClient(sendGridApiKey); SendGrid.Helpers.Mail.SendGridMessage message = new SendGrid.Helpers.Mail.SendGridMessage(); message.Subject = string.Format("Please confirm your account"); message.From = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**", "Will Mabrey"); message.AddTo(new SendGrid.Helpers.Mail.EmailAddress(model.EmailAddress)); SendGrid.Helpers.Mail.Content contents = new SendGrid.Helpers.Mail.Content("text/html", string.Format("<a href=\"{0}\">Confirm Account</a>", Request.Url.GetLeftPart(UriPartial.Authority) + "/MyAccount/Confirm/" + confirmationToken + "?email=" + model.EmailAddress)); message.AddContent(contents.Type, contents.Value); SendGrid.Response response = await client.SendEmailAsync(message); return(RedirectToAction("ConfirmSent")); } else { ModelState.AddModelError("EmailAddress", "Unable to register with this email address."); } } } return(View(model)); }
public async System.Threading.Tasks.Task <ActionResult> Register(string username, string email, string password) { var userStore = new Microsoft.AspNet.Identity.EntityFramework.UserStore <Microsoft.AspNet.Identity.EntityFramework.IdentityUser>(); var manager = new Microsoft.AspNet.Identity.UserManager <Microsoft.AspNet.Identity.EntityFramework.IdentityUser>(userStore); var user = new Microsoft.AspNet.Identity.EntityFramework.IdentityUser() { UserName = username, Email = email, EmailConfirmed = false }; manager.UserTokenProvider = new Microsoft.AspNet.Identity.EmailTokenProvider <Microsoft.AspNet.Identity.EntityFramework.IdentityUser>(); Microsoft.AspNet.Identity.IdentityResult result = await manager.CreateAsync(user, password); if (result.Succeeded) { //I have some options: log them in, or I can send them an email to "Confirm" their account details.' //I don't have email set up this week, so we'll come back to that. string confirmationToken = await manager.GenerateEmailConfirmationTokenAsync(user.Id); string confirmationLink = Request.Url.GetLeftPart(UriPartial.Authority) + "/Account/Confirm/" + user.Id + "?token=" + confirmationToken; string apiKey = System.Configuration.ConfigurationManager.AppSettings["SendGrid.ApiKey"]; SendGrid.ISendGridClient client = new SendGrid.SendGridClient(apiKey); SendGrid.Helpers.Mail.EmailAddress from = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**", "Coding Cookware Administrator"); SendGrid.Helpers.Mail.EmailAddress to = new SendGrid.Helpers.Mail.EmailAddress(email); string subject = "Confirm your Coding Cookware Account"; string htmlContent = string.Format("<a href=\"{0}\">Confirm Your Account</a>", confirmationLink); string plainTextContent = confirmationLink; SendGrid.Helpers.Mail.SendGridMessage message = SendGrid.Helpers.Mail.MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent); SendGrid.Response response = await client.SendEmailAsync(message); TempData["EmailAddress"] = email; return(RedirectToAction("ConfirmationSent")); //Commenting this out: I'm not going to log the user in on registration anymore - I'm going to send them a confirmation email instead. //This authentication manager will create a cookie for the current user, and that cookie will be exchanged on each request until the user logs out //var authenticationManager = HttpContext.GetOwinContext().Authentication; //var userIdentity = await manager.CreateIdentityAsync(user, Microsoft.AspNet.Identity.DefaultAuthenticationTypes.ApplicationCookie); //authenticationManager.SignIn(new Microsoft.Owin.Security.AuthenticationProperties() { }, userIdentity); } else { ViewBag.Error = result.Errors; return(View()); } return(RedirectToAction("Index", "Home")); }
private static SendGrid.Helpers.Mail.SendGridMessage getSendGridMessage(EmailMessage message) { var m = new SendGrid.Helpers.Mail.SendGridMessage(); SendGrid.Helpers.Mail.EmailAddress getAddress(EmailAddress address) => new SendGrid.Helpers.Mail.EmailAddress(address.Address, name: address.DisplayName.Any() ? address.DisplayName : null); m.From = getAddress(message.From); // As of 12 September 2017 SendGrid does not support multiple reply-to addresses. See https://github.com/sendgrid/sendgrid-csharp/issues/339. var replyToAddress = message.ReplyToAddresses.SingleOrDefault(); if (replyToAddress != null) { m.ReplyTo = getAddress(replyToAddress); } foreach (var i in message.ToAddresses.Select(getAddress)) { m.AddTo(i); } foreach (var i in message.CcAddresses.Select(getAddress)) { m.AddCc(i); } foreach (var i in message.BccAddresses.Select(getAddress)) { m.AddBcc(i); } m.Subject = message.Subject; foreach (var i in message.CustomHeaders) { m.AddHeader(i.Item1, i.Item2); } m.PlainTextContent = htmlToPlainText(message.BodyHtml); m.HtmlContent = message.BodyHtml; foreach (var i in message.Attachments) { if (i.Stream == null) { m.AddAttachment(Path.GetFileName(i.FilePath), Convert.ToBase64String(File.ReadAllBytes(i.FilePath))); } else { using (var stream = new MemoryStream()) { i.Stream.CopyTo(stream); m.AddAttachment(i.AttachmentDisplayName, Convert.ToBase64String(stream.ToArray())); } } } return(m); }
public Task SendAsync(IdentityMessage message) { string sendGridApiKey = System.Configuration.ConfigurationManager.AppSettings["SendGrid.ApiKey"]; SendGrid.SendGridClient client = new SendGrid.SendGridClient(sendGridApiKey); SendGrid.Helpers.Mail.SendGridMessage sendgridMessage = new SendGrid.Helpers.Mail.SendGridMessage(); sendgridMessage.AddTo(message.Destination); sendgridMessage.Subject = message.Subject; sendgridMessage.SetFrom("*****@*****.**", "WeirdEnsemble.com Administrator"); sendgridMessage.AddContent("text/html", message.Body); sendgridMessage.SetTemplateId("9f449d8f-c608-4336-9cbf-8a73ca391f3e"); return(client.SendEmailAsync(sendgridMessage)); }
public async Task SendDocLinkAsync(string id, string reciver, string fileAccessToken, string callbackUrl) { var message = new SendGrid.Helpers.Mail.SendGridMessage() { Subject = "Udostępniony dokument", HtmlContent = $"{callbackUrl}/{reciver}/shared/{id}?fileAccessToken={HttpUtility.UrlEncode(fileAccessToken)}", PlainTextContent = $"{callbackUrl}/{reciver}/shared/{id}?fileAccessToken={HttpUtility.UrlEncode(fileAccessToken)}", From = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**") }; message.AddTo(reciver); await _sendGridClient.SendEmailAsync(message); }
public async Task SendPasswordResetAsync(string token, string reciver, string callbackUrl) { var message = new SendGrid.Helpers.Mail.SendGridMessage() { Subject = "Resetowanie hasła", HtmlContent = $"{callbackUrl}/{reciver}?token={HttpUtility.UrlEncode(token)}", PlainTextContent = $"{callbackUrl}/{reciver}/?token={HttpUtility.UrlEncode(token)}", From = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**") }; message.AddTo(reciver); await _sendGridClient.SendEmailAsync(message); }
public async Task <IActionResult> Register(string username, string password) { if (ModelState.IsValid) { ApplicationUser newUser = new ApplicationUser { Email = username, UserName = username }; newUser.UserName = username; newUser.Email = username; var userResult = await _signInManager.UserManager.CreateAsync(newUser); if (userResult.Succeeded) { var passwordResult = await _signInManager.UserManager.AddPasswordAsync(newUser, password); if (passwordResult.Succeeded) { //TODO: Send a user a message thanking them for registering. SendGrid.Helpers.Mail.SendGridMessage message = new SendGrid.Helpers.Mail.SendGridMessage(); message.AddTo(username); message.Subject = "Welcome to InnvoTech"; message.SetFrom("*****@*****.**"); message.AddContent("text/plain", "Thanks for registering as " + username + " on InnvoTech!"); message.AddContent("text/html", "Thanks for registering as " + username + " on InnvoTech!"); message.SetTemplateId("701c49d4-0931-4dd2-9c44-2ca93ad7f00e"); await _sendGridClient.SendEmailAsync(message); await _signInManager.SignInAsync(newUser, false); return(RedirectToAction("Index", "Home")); } else { foreach (var error in passwordResult.Errors) { ModelState.AddModelError(error.Code, error.Description); } await _signInManager.UserManager.DeleteAsync(newUser); } } else { foreach (var error in userResult.Errors) { ModelState.AddModelError(error.Code, error.Description); } } } return(View()); }
public async Task SendRegisterConfirm(string token, string reciver, string callbackUrl) { var message = new SendGrid.Helpers.Mail.SendGridMessage() { Subject = "Potwierdzenie rejestracji", HtmlContent = $"{callbackUrl}/{reciver}?token={HttpUtility.UrlEncode(token)}", PlainTextContent = $"{callbackUrl}/{reciver}?token={HttpUtility.UrlEncode(token)}", From = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**") }; message.AddTo(reciver); await _sendGridClient.SendEmailAsync(message); }
public Task SendEmail(string emailTo, string subject, string message) { _logger.LogInformation($"##Start## Sending email via SendGrid to: {emailTo} subject: {subject} message: {message}"); var client = new SendGrid.SendGridClient(_emailServiceOptions.RemoteServerAPI); var sendGridMessage = new SendGrid.Helpers.Mail.SendGridMessage { From = new SendGrid.Helpers.Mail.EmailAddress(_emailServiceOptions.UserId) }; sendGridMessage.AddTo(emailTo); sendGridMessage.Subject = subject; sendGridMessage.HtmlContent = message; client.SendEmailAsync(sendGridMessage); return(Task.CompletedTask); }
public Task SendEmail(string emailTo, string subject, string message) { _logger.LogInformation($"##Start## Wysyłanie wiadomości e-mail za pomocą usługi SendGrid do:{emailTo} temat:{subject} wiadomość:{message}"); var client = new SendGrid.SendGridClient(_emailServiceOptions.RemoteServerAPI); var sendGridMessage = new SendGrid.Helpers.Mail.SendGridMessage { From = new SendGrid.Helpers.Mail.EmailAddress(_emailServiceOptions.UserId) }; sendGridMessage.AddTo(emailTo); sendGridMessage.Subject = subject; sendGridMessage.HtmlContent = message; client.SendEmailAsync(sendGridMessage); // wysłanie mail'a return(Task.CompletedTask); }
public async Task <IActionResult> Register(string email, string username, string password) { if (ModelState.IsValid) { ApplicationUser newUser = new ApplicationUser(); newUser.Email = email; newUser.UserName = username; var userResult = await _signInManager.UserManager.CreateAsync(newUser); if (userResult.Succeeded) { var passwordResult = await _signInManager.UserManager.AddPasswordAsync(newUser, password); if (passwordResult.Succeeded) { //SendGrid.SendGridClient sendGridClient = new SendGrid.SendGridClient("api_key"); SendGrid.Helpers.Mail.SendGridMessage message = new SendGrid.Helpers.Mail.SendGridMessage(); message.AddTo(email); message.Subject = "Welcome to the Sound Store!"; message.SetFrom("*****@*****.**"); message.AddContent("text/plain", "Thanks for registering " + username + " on Sound Store!"); message.AddContent("text/html", "Thanks for registering " + username + " on Sound Store!"); message.SetTemplateId("7610f02c-135a-4a53-844f-ccc2003ee5a8"); await _sendGridClient.SendEmailAsync(message); await _signInManager.SignInAsync(newUser, false); return(RedirectToAction("Index", "Home")); } else { foreach (var error in passwordResult.Errors) { ModelState.AddModelError(error.Code, error.Description); } await _signInManager.UserManager.DeleteAsync(newUser); } } else { foreach (var error in userResult.Errors) { ModelState.AddModelError(error.Code, error.Description); } } } return(View()); }
public async Task <IActionResult> Register(string username, string password) { if (ModelState.IsValid) { ApplicationUser newUser = new ApplicationUser { UserName = username, Email = username }; var userResult = await _signInManager.UserManager.CreateAsync(newUser); if (userResult.Succeeded) { var passwordResult = await _signInManager.UserManager.AddPasswordAsync(newUser, password); if (passwordResult.Succeeded) { SendGrid.Helpers.Mail.SendGridMessage message = new SendGrid.Helpers.Mail.SendGridMessage(); message.AddTo(username); message.Subject = "Welcome to Layman Finance!"; message.SetFrom("*****@*****.**"); message.AddContent("text/plain", "Welcome to LaymanFinance, " + username + ". Get ready to take control of your finances."); await _sendGridClient.SendEmailAsync(message); await _signInManager.SignInAsync(newUser, isPersistent : false); return(RedirectToAction("Index", "Account")); } else { foreach (var error in passwordResult.Errors) { ModelState.AddModelError(error.Code, error.Description); } await _signInManager.UserManager.DeleteAsync(newUser); } } else { foreach (var error in userResult.Errors) { ModelState.AddModelError(error.Code, error.Description); } } } return(View()); }
public Task SendAsync(IdentityMessage message) { string apiKey = System.Configuration.ConfigurationManager.AppSettings["SendGrid.Key"]; SendGrid.SendGridClient client = new SendGrid.SendGridClient(apiKey); SendGrid.Helpers.Mail.SendGridMessage mail = new SendGrid.Helpers.Mail.SendGridMessage(); mail.SetFrom(new SendGrid.Helpers.Mail.EmailAddress { Name = "LawDoggs", Email = "*****@*****.**" }); mail.AddTo(message.Destination); mail.Subject = message.Subject; mail.AddContent("text/plain", message.Body); mail.AddContent("text/html", message.Body); return(client.SendEmailAsync(mail)); }
public async Task <IActionResult> Register(string username, string password) { if (ModelState.IsValid) { ApplicationUser newUser = new ApplicationUser { Email = username, UserName = username }; var userResult = await _signInManager.UserManager.CreateAsync(newUser); if (userResult.Succeeded) { var passwordResult = await _signInManager.UserManager.AddPasswordAsync(newUser, password); if (passwordResult.Succeeded) { SendGrid.Helpers.Mail.SendGridMessage message = new SendGrid.Helpers.Mail.SendGridMessage(); message.AddTo(username); message.Subject = "Email Confirmation for RADZONE.xyz"; message.SetFrom("*****@*****.**"); message.AddContent("text/plain", "Thank you, " + username + " for signing up for RADZONE.xyz!"); await _sendGridClient.SendEmailAsync(message); await _signInManager.SignInAsync(newUser, false); return(RedirectToAction("Index", "Home")); } else { foreach (var error in passwordResult.Errors) { ModelState.AddModelError(error.Code, error.Description); } await _signInManager.UserManager.DeleteAsync(newUser); } } else { foreach (var error in userResult.Errors) { ModelState.AddModelError(error.Code, error.Description); } } } return(View()); }
public async Task <IActionResult> Register(string username, string password) { if (ModelState.IsValid) { ApplicationUser newUser = new ApplicationUser { UserName = username, Email = username }; var userResult = _signInManager.UserManager.CreateAsync(newUser).Result; if (userResult.Succeeded) { var passwordResult = _signInManager.UserManager.AddPasswordAsync(newUser, password).Result; if (passwordResult.Succeeded) { _signInManager.SignInAsync(newUser, false).Wait(); SendGrid.Helpers.Mail.SendGridMessage message = new SendGrid.Helpers.Mail.SendGridMessage(); message.AddTo(username); message.Subject = "Welcome to School Store"; message.SetFrom("*****@*****.**"); message.AddContent("text/plain", "Thanks for registering as " + username + " on SchoolStore!"); await _sendGridClient.SendEmailAsync(message); return(RedirectToAction("Index", "Home")); } else { foreach (var error in passwordResult.Errors) { ModelState.AddModelError(error.Code, error.Description); } _signInManager.UserManager.DeleteAsync(newUser).Wait(); } } else { foreach (var error in userResult.Errors) { ModelState.AddModelError(error.Code, error.Description); } } } return(View()); }
public IActionResult Register(string username, string password, string email) // add Task<IActionResult> and add mark code await where there is .Result and .wait(); { if (ModelState.IsValid) { ApplicationUser newUser = new ApplicationUser(username); newUser.Email = email; var userResult = _signInManager.UserManager.CreateAsync(newUser).Result; if (userResult.Succeeded) { var passwordResult = _signInManager.UserManager.AddPasswordAsync(newUser, password).Result; if (passwordResult.Succeeded) { //TODO: Send a user a message thanking them for creating an account; SendGrid.Helpers.Mail.SendGridMessage message = new SendGrid.Helpers.Mail.SendGridMessage(); message.AddTo(email); message.Subject = "Welcome to CompiFuture Electronics"; message.SetFrom("*****@*****.**"); message.AddContent("text/plain", "Thank you for registering " + username + " on CompiFuture!"); _sendGridClient.SendEmailAsync(message); _signInManager.SignInAsync(newUser, false).Wait(); // changed the register method to: RegisterAsync return(RedirectToAction("Welcome", "Home")); } else { foreach (var error in passwordResult.Errors) { ModelState.AddModelError(error.Code, error.Description); } _signInManager.UserManager.DeleteAsync(newUser).Wait(); } } else { foreach (var error in userResult.Errors) { ModelState.AddModelError(error.Code, error.Description); } } } return(View()); }
public async Task <ActionResult> ForgotPassword(ForgotPasswordViewModel model) { if (ModelState.IsValid) { using (IdentityModels entities = new IdentityModels()) { var userStore = new UserStore <User>(entities); var manager = new UserManager <User>(userStore); manager.UserTokenProvider = new EmailTokenProvider <User>(); var user = manager.FindByName(model.Email); // If user has to activate his email to confirm his account, the use code listing below //if (user == null || !(await UserManager.IsEmailConfirmedAsync(user.Id))) //{ // return Ok(); //} string code = await manager.GeneratePasswordResetTokenAsync(user.Id); string sendGridKey = System.Configuration.ConfigurationManager.AppSettings["SendGrid.ApiKey"]; SendGrid.SendGridClient client = new SendGrid.SendGridClient(sendGridKey); SendGrid.Helpers.Mail.SendGridMessage message = new SendGrid.Helpers.Mail.SendGridMessage(); message.Subject = string.Format("Reset Password"); message.From = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**", "Will Mabrey"); message.AddTo(new SendGrid.Helpers.Mail.EmailAddress(model.Email)); SendGrid.Helpers.Mail.Content contents = new SendGrid.Helpers.Mail.Content("text/html", string.Format("<a href=\"{0}\">Reset Password</a>", Request.Url.GetLeftPart(UriPartial.Authority) + "/MyAccount/ResetPassword/" + code + "?EmailAddress=" + model.Email)); message.AddContent(contents.Type, contents.Value); SendGrid.Response response = await client.SendEmailAsync(message); //await client.SendEmailAsync(user.Id, "Reset Password", $"Please reset your password by using this {code}"); return(RedirectToAction("ResetSent")); } } return(View()); // If we got this far, something failed, redisplay form }
public Task SendEmailAsync(string email, string subject, string message) { SendGrid.SendGridClient client = new SendGrid.SendGridClient(_apiKey); var msg = new SendGrid.Helpers.Mail.SendGridMessage() { From = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**", "The Game Vault Admin"), Subject = subject, PlainTextContent = message, HtmlContent = message }; msg.AddTo(new SendGrid.Helpers.Mail.EmailAddress(email)); msg.TrackingSettings = new SendGrid.Helpers.Mail.TrackingSettings { ClickTracking = new SendGrid.Helpers.Mail.ClickTracking { Enable = false } }; return client.SendEmailAsync(msg); }
public override async Task SendAsync(MailMessage message) { var oclient = new SG.SendGridClient(SmtpServer.ApiKey); var sgMessage = new SG.Helpers.Mail.SendGridMessage() { From = new SG.Helpers.Mail.EmailAddress() { Email = DefaultFromEmail }, Subject = message.Subject, HtmlContent = message.Body }; foreach (var to in message.To) { sgMessage.AddTo(to.Address, to.DisplayName); } await oclient.SendEmailAsync(sgMessage); }
public Task SendAsync(IdentityMessage message) { string apiKey = System.Configuration.ConfigurationManager.AppSettings["SendGrid.Key"]; SendGrid.SendGridClient client = new SendGrid.SendGridClient(apiKey); SendGrid.Helpers.Mail.SendGridMessage mail = new SendGrid.Helpers.Mail.SendGridMessage(); mail.SetFrom(new SendGrid.Helpers.Mail.EmailAddress { Name = "BeerPack Admin", Email = "*****@*****.**" }); mail.AddTo(message.Destination); mail.SetSubject(message.Subject); mail.AddContent("text/plain", message.Body); mail.AddContent("text/html", message.Body); //Set this to a template ID generated from your SendGrid transactional Email Templates mail.SetTemplateId("356743ee-55be-4531-9be3-d4b116b50c16"); mail.AddSubstitution("<%copyright%>", string.Format("©{0} BeerPack", DateTime.Now.Year.ToString())); return(client.SendEmailAsync(mail)); }
public Task SendAsync(IdentityMessage message) { string apiKey = System.Configuration.ConfigurationManager.AppSettings["SendGrid.Key"]; SendGrid.SendGridClient client = new SendGrid.SendGridClient(apiKey); SendGrid.Helpers.Mail.SendGridMessage mail = new SendGrid.Helpers.Mail.SendGridMessage(); mail.SetFrom(new SendGrid.Helpers.Mail.EmailAddress { Name = "PAA Admin", Email = "*****@*****.**" }); mail.AddTo(message.Destination); mail.SetSubject(message.Subject); mail.AddContent("text/plain", message.Body); mail.AddContent("text/html", message.Body); //Set this to a template ID generated from your SendGrid transactional Email Templates mail.SetTemplateId("5e43d3e0-b987-4221-aede-c9c7a581c5d9"); mail.AddSubstitution("<%copyright%>", string.Format("©{0} PAA", DateTime.Now.Year.ToString())); return(client.SendEmailAsync(mail)); }
public Task SendAsync(IdentityMessage message) { string sendGridApiKey = System.Configuration.ConfigurationManager .AppSettings["SendGrid.ApiKey"]; SendGrid.SendGridClient client = new SendGrid.SendGridClient(sendGridApiKey); SendGrid.Helpers.Mail.SendGridMessage sendgridMessage = new SendGrid.Helpers.Mail.SendGridMessage(); sendgridMessage.AddTo(message.Destination); sendgridMessage.Subject = message.Subject; sendgridMessage.SetFrom("*****@*****.**", "Athena's Spider Administrator"); sendgridMessage.AddContent("text/html", message.Body); sendgridMessage.SetTemplateId("eaf676b4-4d36-42f9-8961-de31f52ecfc3"); return(client.SendEmailAsync(sendgridMessage)); }
public Task SendEmailAsync(string email, string subject, string message) //This comes from the IEmailSender. { SendGrid.SendGridClient client = new SendGrid.SendGridClient(_apikey); var msg = new SendGrid.Helpers.Mail.SendGridMessage() { From = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**", "Travel Bid admin"), Subject = subject, PlainTextContent = message, HtmlContent = message }; msg.AddTo(new SendGrid.Helpers.Mail.EmailAddress(email)); msg.TrackingSettings = new SendGrid.Helpers.Mail.TrackingSettings { ClickTracking = new SendGrid.Helpers.Mail.ClickTracking { Enable = false } }; return(client.SendEmailAsync(msg)); }