public async Task <IActionResult> OnPostChangeEmailAsync() { var user = await _userManager.GetUserAsync(User); if (user == null) { return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.")); } if (!ModelState.IsValid) { await LoadAsync(user); return(Page()); } var email = await _userManager.GetEmailAsync(user); if (Input.NewEmail != email) { var userId = await _userManager.GetUserIdAsync(user); var code = await _userManager.GenerateChangeEmailTokenAsync(user, Input.NewEmail); var callbackUrl = Url.Page( "/Account/ConfirmEmailChange", pageHandler: null, values: new { userId = userId, email = Input.NewEmail, code = code }, protocol: Request.Scheme); MailRequestViewModel mailRequest = new MailRequestViewModel { ToEmail = Input.NewEmail, Subject = "[Mail Automatico]Confirme su cuenta", Body = $"Por favor confirme su cuenta <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>Haciendo click aqui</a>. <br /> BitCoin Santa Fe" }; await _emailSender.SendEmailAsync(mailRequest); StatusMessage = "Confirmation link to change email sent. Please check your email."; return(RedirectToPage()); } StatusMessage = "Your email is unchanged."; return(RedirectToPage()); }
public async Task <IActionResult> OnPostSendVerificationEmailAsync() { var user = await _userManager.GetUserAsync(User); if (user == null) { return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.")); } if (!ModelState.IsValid) { await LoadAsync(user); return(Page()); } var userId = await _userManager.GetUserIdAsync(user); var email = await _userManager.GetEmailAsync(user); var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code)); var callbackUrl = Url.Page( "/Account/ConfirmEmail", pageHandler: null, values: new { area = "Identity", userId = userId, code = code }, protocol: Request.Scheme); MailRequestViewModel mailRequest = new MailRequestViewModel { ToEmail = Input.NewEmail, Subject = "[Mail Automatico]Confirme su cuenta", Body = $"Por favor confirme su cuenta <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>Haciendo click aqui</a>. <br /> BitCoin Santa Fe" }; await _emailSender.SendEmailAsync(mailRequest); StatusMessage = "Verification email sent. Please check your email."; return(RedirectToPage()); }
public async Task <IActionResult> OnPostAsync() { if (ModelState.IsValid) { var user = await _userManager.FindByEmailAsync(Input.Email); if (user == null) { // Don't reveal that the user does not exist or is not confirmed return(RedirectToPage("./ForgotPasswordConfirmation")); } // For more information on how to enable account confirmation and password reset please // visit https://go.microsoft.com/fwlink/?LinkID=532713 var code = await _userManager.GeneratePasswordResetTokenAsync(user); code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code)); var callbackUrl = Url.Page( "/Account/ResetPassword", pageHandler: null, values: new { area = "Identity", code }, protocol: Request.Scheme); MailRequestViewModel mail = new MailRequestViewModel { ToEmail = Input.Email, Subject = "[Mail Automatico] Reinicie su contraseña", Body = $"Por favor reinicie su contraseña <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>haciendo click aqui</a>. <br /> Atte BitCoin Santa Fe" }; await _emailSender.SendEmailAsync(mail); return(RedirectToPage("./ForgotPasswordConfirmation")); } return(Page()); }
public async Task SendEmailAsync(MailRequestViewModel mailRequest) { var email = new MimeMessage { Sender = MailboxAddress.Parse(_mailSettings.Mail) }; email.To.Add(MailboxAddress.Parse(mailRequest.ToEmail)); email.Subject = mailRequest.Subject; var builder = new BodyBuilder(); if (mailRequest.Attachments != null) { byte[] fileBytes; foreach (var file in mailRequest.Attachments) { if (file.Length > 0) { using (var ms = new MemoryStream()) { file.CopyTo(ms); fileBytes = ms.ToArray(); } builder.Attachments.Add(file.FileName, fileBytes, ContentType.Parse(file.ContentType)); } } } builder.HtmlBody = mailRequest.Body; email.Body = builder.ToMessageBody(); using var smtp = new SmtpClient(); smtp.Connect(_mailSettings.Host, _mailSettings.Port, SecureSocketOptions.StartTls); smtp.Authenticate(_mailSettings.Mail, _mailSettings.Password); await smtp.SendAsync(email); smtp.Disconnect(true); }
public async Task <IActionResult> ExportReport() { var clients = await _clientServices.GetAllClients(); for (int c = 0; c < clients.Count; c++) { string emailHead = "Hola " + clients[c].Name + "," + br + "Este es un resumen de tu cuenta en Bitcoin Santa Fe al día " + DateTime.Today.ToShortDateString() + br; string emailTxt = emailHead; foreach (var f in clients[c].Futures) { emailTxt = emailHead + DateTime.Today.ToShortDateString() + br + "Cuenta: " + f.ContractNumber + br + "Capital inicial: " + String.Format("{0:.00}", f.Capital) + usdTxt + br; string signature = "Fecha de proximo retiro: " + f.FinishDate.ToShortDateString() + br; if (f.ContractNumber == (int)SpecialClients.Uno) { emailTxt = emailTxt + usdTConst + f.FinalResult + br + "Recuerde que el acumulado se ve afectado por los contratos de renta fija" + signature; } else { if (f.FixRent) { emailTxt = emailTxt + MensRent + f.FixRentPercentage + "%" + br + signature; } else { decimal percentage = (((f.FinalResult - f.Capital) / f.Capital) * 100); emailTxt = emailTxt + MensRent + String.Format("{0:.00}", percentage) + "%" + br + usdTConst + String.Format("{0:.00}", f.FinalResult) + usdTxt + br + signature; } } } emailTxt += finishMessage; var MailRequest = new MailRequestViewModel() { ToEmail = clients[c].Email, Subject = emailTitle, Body = emailTxt }; await _service.SendEmailAsync(MailRequest); } return(Ok()); }