/// <summary> /// 執行寄信 /// </summary> /// <param name="data"></param> /// <returns></returns> public bool Excute(MailRequest data) { if (!data.MailTos.Any()) { throw new ArgumentNullException("發信行為失敗,並無給予寄信對象"); } #region 找到系統參數,並填入SMTP相關參數 Tsysdat param = _paramRepo.Get(new Conditions <DataBase.TSYSDAT>()); if (param == null) { throw new NullReferenceException("發信行為失敗,找不到系統參數"); } data.SmptName = param.SmptName; data.SendMail = param.SendMail; data.MailPassword = param.MailPassword; #endregion return(_mailRepo.Send(data)); }
public async Task SendEmailAsync(MailRequest mailRequest) { var email = new MimeMessage(); email.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); }
// GET: Devices/request/5?userId=12 public async Task <IActionResult> RequestDevice(int?id, string userId) { if ((id == null) || (userId == null)) { return(NotFound()); } var device = _deviceRepository.GetById(id); var requester = _userRepository.GetUserById(userId); if ((device == null) || (requester == null)) { return(NotFound()); } MailRequest request = new MailRequest { To = "*****@*****.**", Subject = "Deivce Request" }; request.PrepeareDeviceRequestBody(device, requester); await _mailService.SendEmailAsync(request); return(RedirectToAction(nameof(Index), "Devices")); }
public async Task SendEmailAsync(MailRequest mailRequest) { //var email = new MimeMessage(); //var sender = MailboxAddress.Parse(mailSettings.Mail); //sender.Name = mailSettings.DisplayName; //email.Sender = sender; //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 SendAsync(MailRequest request) { try { var mailMessage = new MailMessage() { From = new MailAddress(request.From ?? _mailSettings.From), Subject = request.Subject, IsBodyHtml = true, Body = request.Body, }; mailMessage.To.Add(new MailAddress(request.To)); using var smtp = new SmtpClient(_mailSettings.Host, _mailSettings.Port) { UseDefaultCredentials = false, Credentials = new NetworkCredential(_mailSettings.UserName, _mailSettings.Password), DeliveryMethod = SmtpDeliveryMethod.Network, EnableSsl = true //TODO maybe false in production and change port }; await smtp.SendMailAsync(mailMessage); } catch (System.Exception ex) { _logger.LogError(ex.Message, ex); //TODO: Remove try catch and implement resiliency with polly Console.WriteLine("errorMail"); } }
public static Response SendMail(MailRequest request) { Response response = new Response(); try { using (var client = new SmtpClient()) { var credential = new NetworkCredential { UserName = request.Credential.UserName, Password = request.Credential.Password }; client.Credentials = credential; client.Host = request.HostName; client.Port = request.Port; client.EnableSsl = false; var message = GetMailWithOutImg(request); client.Send(message); } return(response); } catch (Exception ex) { response.Success = false; response.Message = ex.Message; return(response); } }
public async Task SendEmailAsync(MailRequest request) { try { var message = new MimeMessage(); message.From.Add(new MailboxAddress(_smtpSettings.SenderName, _smtpSettings.SenderEmail)); message.To.Add(new MailboxAddress("", request.Email)); message.Subject = request.Tema; message.Body = new TextPart("html") { Text = request.Cuerpo }; using (var cliente = new MailKit.Net.Smtp.SmtpClient()) { await cliente.ConnectAsync(_smtpSettings.Server); await cliente.AuthenticateAsync(_smtpSettings.Username, _smtpSettings.Password); await cliente.SendAsync(message); await cliente.DisconnectAsync(true); } } catch (Exception) { } }
public int MailRequest(MailRequest request) { Console.WriteLine("MailRequest: " + request); SmtpClient client = new SmtpClient(); client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential("*****@*****.**", "polytechnicesophia"); client.Port = 587; client.Host = "smtp.gmail.com"; client.EnableSsl = true; for (int i = 0; i < request.Mails.Count; ++i) { MailMessage mail = new MailMessage(); mail.From = new MailAddress("*****@*****.**"); mail.To.Add(request.Mails[i]); //mail.To.Add("*****@*****.**"); mail.Subject = request.Object; mail.Body = request.Message; ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return(true); }; //client.Send(mail); } return(0); }
public async Task <IActionResult> ForgetPassword(ForgetPasswordViewModel model) { if (User.Identity.IsAuthenticated) { return(RedirectToAction("Index", "Profile")); } UserModel user = await ManageUser.FindByEmailAsync(model.Email); ViewBag.Sent = false; if (user != null) { var token = await ManageUser.GeneratePasswordResetTokenAsync(user); var callbackUrl = Url.Action("ResetPassword", "Account", new { token = token, email = user.Email }); var url = "https://" + Request.Host + callbackUrl; MailRequest mailrequest = new MailRequest { ToEmail = model.Email, Subject = "Password Reset Token", Body = "<div style='text-align:center'> <h1 style='margin:20px;'> Reset Your Password. </h1> <a href='" + url + "' > Reset Password </a> </div>" }; var result = await SendToken(mailrequest); if (result) { ViewBag.Sent = true; } } return(View()); }
public async Task sendVerificationEmail(Account account, string origin) { string message; if (!string.IsNullOrEmpty(origin)) { message = $@"<p>Mã kích hoạt của bạn là: {account.VerificationToken}</p>"; } else { message = $@"<p>Please use the below token to verify your email address with the <code>/accounts/verify-email</code> api route:</p> <p><code>{account.VerificationToken}</code></p>"; } //_emailService.Send( // to: account.Email, // subject: "Sign-up Verification API - Verify Email", // html: // ); var mailRequest = new MailRequest() { ToEmail = account.Email, Subject = "Mã kích hoạt tài khoản CoStudy", Body = $@"<h4>Xác thực thông tin email</h4> <p>Cảm ơn bạn đã đăng kí sử dụng dịch vụ!</p> {message}" }; await emailService.SendEmailAsync(mailRequest); }
public async Task sendAlreadyRegisteredEmail(string email, string origin) { string message; if (!string.IsNullOrEmpty(origin)) { message = $@"<p>If you don't know your password please visit the <a href=""{origin}/account/forgot-password"">forgot password</a> page.</p>"; } else { message = "<p>If you don't know your password you can reset it via the <code>/accounts/forgot-password</code> api route.</p>"; } emailService.Send( to: email, subject: "Sign-up Verification API - Email Already Registered", html: $@"<h4>Email Already Registered</h4> <p>Your email <strong>{email}</strong> is already registered.</p> {message}" ); var mailRequest = new MailRequest() { ToEmail = email, Subject = "Đăng kí tài khoản CoStudy - Email đã bị tái đăng kí", Body = $@"<h4>Email Already Registered</h4> <p>Your email <strong>{email}</strong> is already registered.</p> {message}" }; await emailService.SendEmailAsync(mailRequest); }
public async Task sendPasswordResetEmail(Account account, string origin) { string message; if (!string.IsNullOrEmpty(origin)) { var resetUrl = $"{origin}/account/reset-password?token={account.ResetToken}"; message = $@"<p>Please click the below link to reset your password, the link will be valid for 1 day:</p> <p><a href=""{resetUrl}"">{resetUrl}</a></p>"; } else { message = $@"<p>Please use the below token to reset your password with the <code>/accounts/reset-password</code> api route:</p> <p><code>{account.ResetToken}</code></p>"; } var mailRequest = new MailRequest() { ToEmail = account.Email, Subject = "Đăng kí tài khoản CoStudy - đặt lại mật khẩu", Body = $@"<h4>Reset Password Email</h4> {message}" }; await emailService.SendEmailAsync(mailRequest); }
//TODO: Incomplete... public static MailRequest ToMailRequest(this MailContent mailContent) { var request = new MailRequest { sender = mailContent.Senders == null ? null : String.Join(",", mailContent.Senders), receivers = mailContent.Receivers == null ? null : String.Join(",", mailContent.Receivers), subject = mailContent.Subject, html = mailContent.Html, text = mailContent.Text, cc = mailContent.Copies == null ? null : String.Join(",", mailContent.Copies), bcc = mailContent.BlindCopies == null ? null : String.Join(",", mailContent.BlindCopies) }; //Subject if (mailContent.Subject != null) { request.subject = mailContent.Subject; } //Body if (mailContent.Html != null) { request.text = mailContent.Html; } else if (mailContent.Text != null) { request.text = mailContent.Text; } return(request); }
public void InsertUser(UserHotelBookingDetail userHotel) { context.UserHotelBookingDetails.Add(userHotel); context.SaveChanges(); var userEmail = ""; userEmail = userHotel.UserEmailAddress; MailRequest request = new MailRequest(); request.ToEmail = userEmail; request.Subject = $"Spicejet Hotel Booking"; request.Body = $"<p style='color:green'> Dear,{userHotel.UserFirstName} {userHotel.UserMiddleName} {userHotel.UserLastName} <br> Your Hotel Booking Successfully Done <br> Your Conformation Number is :- {userHotel.UserConformationNumber}</p>"; try { if (userEmail != null) { mailService.SendEmailAsync(request); } } catch (Exception) { throw; } }
public async Task <IActionResult> ForgotPassword(ForgotPasswordViewModel model) { if (ModelState.IsValid) { var user = await _userManager.FindByEmailAsync(model.Email); if (user == null || !(await _userManager.IsEmailConfirmedAsync(user))) { // Don't reveal that the user does not exist or is not confirmed return(View("ForgotPasswordConfirmation")); } // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=532713 // Send an email with this link var code = await _userManager.GeneratePasswordResetTokenAsync(user); var callbackUrl = Url.Action("ResetPassword", "Account", new { userId = user.Id, code = code }, protocol: HttpContext.Request.Scheme); var mail = new MailRequest { Subject = "Reset Password", ToEmail = model.Email, Body = "Resetirajte svoju lozinku tako sto kliknete na ovaj: <a href=\"" + callbackUrl + "\">link</a>" }; await _emailSender.SendEmailAsync(mail); return(View("ForgotPasswordConfirmation")); } // If we got this far, something failed, redisplay form return(View(model)); }
/// <summary> /// This methid will return email messages of the current login user and this will return 10 mail messages at a time /// </summary> /// <param name="folderId"></param> /// <param name="startIndex"></param> /// <param name="includeAttachments"></param> /// <returns></returns> public MailMessageList ListMessages(MailRequest mailRequest) { var folders = ListFolders(); var inboxFolder = folders != null?folders.Single(folder => folder.Name == "Inbox") : null; string targetUrl = ""; if (inboxFolder != null && !string.IsNullOrEmpty(inboxFolder.Name)) { targetUrl = $"{generalSettings.GraphUrl}/v1.0/me/mailFolders/{inboxFolder.Id}/messages?$skip={mailRequest.UpToPageNumbersToSkip}&$filter=isDraft eq false"; } else { targetUrl = $"{generalSettings.GraphUrl}/v1.0/me/messages?$skip={mailRequest.UpToPageNumbersToSkip}&$filter=isDraft eq false"; } if (mailRequest.MessageToSearch != string.Empty) { targetUrl = $"{generalSettings.GraphUrl}/v1.0/me/mailFolders/{inboxFolder.Id}/messages?$search={mailRequest.MessageToSearch}"; } string jsonResponse = MakeGetRequestForString(targetUrl); var messages = JsonConvert.DeserializeObject <MailMessageList>(jsonResponse); messages.MailCount = inboxFolder.TotalItemCount; if (mailRequest.IncludeAttachments && messages != null && messages.Messages != null && messages.Messages.Count > 0) { foreach (var mailMessage in messages.Messages) { mailMessage.IsEmail = "true"; LoadAttachments(mailMessage); } } return(messages); }
public async Task SendAsync(MailRequest mailRequest) { MailMessage message = new MailMessage(); SmtpClient client = new SmtpClient(); message.From = new MailAddress(_settings.Mail, _settings.DisplayName); message.To.Add(new MailAddress(mailRequest.Receiver)); message.Subject = mailRequest.Subject; if (mailRequest != null) { foreach (var file in mailRequest.Attachments) { if (file.Length > 0) { using (var ms = new MemoryStream()) { file.CopyTo(ms); var fileBytes = ms.ToArray(); Attachment att = new Attachment(new MemoryStream(fileBytes), file.FileName); message.Attachments.Add(att); } } } } message.IsBodyHtml = false; message.Body = mailRequest.Body; client.Port = _settings.Port; client.Host = _settings.Host; client.EnableSsl = true; client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential(_settings.Mail, _settings.Password); client.DeliveryMethod = SmtpDeliveryMethod.Network; await client.SendMailAsync(message); }
public async Task SendEmailAsync(MailRequest mailRequest, string Id) { try { var email = new MimeMessage(); email.Sender = MailboxAddress.Parse(_mailSettings.Mail); email.To.Add(MailboxAddress.Parse(mailRequest.ToEmail)); email.Subject = mailRequest.Subject; var builder = new BodyBuilder(); var token = GenerateToken(Id); var Message = $"<a href='http://localhost:4200/verfiy-email/{token}'> Click here</a> to verify you email address "; mailRequest.Body = Message; 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); } catch (Exception ex) { throw ex; } }
public void Test1() { MailRequestAttachments mailRequestAttachments = new MailRequestAttachments(); mailRequestAttachments.FileData = System.IO.File.ReadAllBytes("F://export.xls"); mailRequestAttachments.FileName = "车间能源消耗周报.xls"; string body = "您好,有新的待确认收款≥ http://192.168.100.56/web/TechnicalReformation.html"; //string bcc = string.Empty; string to = "*****@*****.**";//收件人 //string cc = "";//抄送人 MailRequest mail = new MailRequest(); mail.Subject = "收款确认"; //主题 mail.Body = body; //内容 // mail.Bcc = bcc;//秘密抄送人 //mail.From = "*****@*****.**";//发送人 mail.To = to; //收件人 // mail.CC = cc; //抄送人 mail.Attachments = new MailRequestAttachments[] { mailRequestAttachments }; string sendMainResult = "-1"; if (!string.IsNullOrEmpty(mail.To.Trim()) || !string.IsNullOrEmpty(mail.CC.Trim())) { sendMainResult = SendMailHelper.SendMail(mail); Assert.True(string.IsNullOrEmpty(sendMainResult)); } }
public async Task <IActionResult> ForgotPassword(ForgotPasswordViewModel model) { if (ModelState.IsValid) { var user = await _userManager.FindByEmailAsync(model.Email); if (user == null || !(await _userManager.IsEmailConfirmedAsync(user))) // phải bật EmailConfirmed bằng True trong table AspNetUsers { // Don't reveal that the user does not exist or is not confirmed return(View("ForgotPasswordConfirmation")); } // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=532713 // Send an email with this link var code = await _userManager.GeneratePasswordResetTokenAsync(user); var callbackUrl = Url.Action("ResetPassword", "Account", new { userId = user.Id, code = code }, protocol: HttpContext.Request.Scheme); //await _emailSender.SendEmailAsync(model.Email, "Reset Password", // "Please reset your password by clicking here: <a href=\"" + callbackUrl + "\">link</a>"); var mailRequest = new MailRequest(); mailRequest.ToEmail = model.Email; // to nhieu email --> research mailRequest.Subject = $"Reset Password - {user.UserName}"; mailRequest.Body = $"Please reset your password with {user.UserName} by clicking here: <a href=\"" + callbackUrl + "\">link</a>"; await _emailSender.SendEmailAsync(mailRequest); return(View("ForgotPasswordConfirmation")); } // If we got this far, something failed, redisplay form return(View(model)); }
private Mail Map(MailRequest request) { var mail = new Mail(); var personalization = new Personalization(); if (string.IsNullOrWhiteSpace(_apiKey)) { throw new ArgumentNullException(nameof(_apiKey)); } _sendGridApi = new SendGridAPIClient(_apiKey); foreach (var mailAddress in request.To) { personalization.Tos.Add(new Email(mailAddress.ToString())); } foreach (var bccAddress in request.Bcc) { personalization.Bccs.Add(new Email(bccAddress.ToString())); } foreach (var ccAddress in request.Cc) { personalization.AddCc(new Email(ccAddress.ToString())); } mail.AddPersonalization(personalization); mail.Subject = request.Subject; return(mail); }
private static BodyBuilder CreateBodyBuilder(MailRequest request) { var builder = new BodyBuilder { HtmlBody = request.Body }; if (request.Attachments == null || !request.Attachments.Any()) { return(builder); } byte[] fileBytes; foreach (var file in request.Attachments) { if (file.Length > 0) { using var ms = new MemoryStream(); file.CopyTo(ms); fileBytes = ms.ToArray(); builder.Attachments.Add(file.Name, fileBytes, ContentType.Parse(file.ContentType)); } } return(builder); }
public async Task SendEmailAsync(MailRequest mailRequest) { try { // create message var email = new MimeMessage(); email.Sender = MailboxAddress.Parse(mailRequest.From ?? _mailSettings.EmailFrom); email.To.Add(MailboxAddress.Parse(mailRequest.ToEmail)); email.Subject = mailRequest.Subject; var builder = new BodyBuilder(); builder.HtmlBody = mailRequest.Body; email.Body = builder.ToMessageBody(); using var smtp = new SmtpClient(); smtp.Connect(_mailSettings.SmtpHost, _mailSettings.SmtpPort, SecureSocketOptions.StartTls); smtp.Authenticate(_mailSettings.SmtpUser, _mailSettings.SmtpPass); await smtp.SendAsync(email); smtp.Disconnect(true); } catch (System.Exception ex) { _logger.LogError(ex.Message, ex); throw new ApiException(ex.Message); } }
public async Task SendEmailAsync(MailRequest mailRequest) { var user = await _context.Teacher.Where(s => s.TeacherUserRef == mailRequest.Id) .FirstOrDefaultAsync(); var smtpClient = new SmtpClient("smtp.ethereal.email") { Port = 587, Credentials = new NetworkCredential("*****@*****.**", "xE2Unny7PXWSC3quvR"), EnableSsl = true, }; var body = user.Email + ": username" + '\n'; smtpClient.Send("*****@*****.**", "*****@*****.**", "subject", body); var user1 = await _context.Users.Where(s => s.Id == mailRequest.Id) .FirstOrDefaultAsync(); var teacher = _context.Users.Find(user1.Id); if (teacher == null) { throw new AppException("User not found"); } teacher.Notification = "yes"; _context.Users.Update(teacher); _context.SaveChanges(); }
public async Task <IResult> ForgotPasswordAsync(ForgotPasswordRequest request, string origin) { var user = await _userManager.FindByEmailAsync(request.Email); if (user == null || !(await _userManager.IsEmailConfirmedAsync(user))) { // Don't reveal that the user does not exist or is not confirmed return(await Result.FailAsync(_localizer["An Error has occured!"])); } // 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 route = "account/reset-password"; var endpointUri = new Uri(string.Concat($"{origin}/", route)); var passwordResetURL = QueryHelpers.AddQueryString(endpointUri.ToString(), "Token", code); var mailRequest = new MailRequest() { Body = $"{_localizer["Please reset your password by"]} <a href='{HtmlEncoder.Default.Encode(passwordResetURL)}'>{_localizer["clicking here"]}</a>.", Subject = _localizer["Reset Password"], To = request.Email }; BackgroundJob.Enqueue(() => _mailService.SendAsync(mailRequest)); return(await Result.SuccessAsync(_localizer["Password Reset Mail has been sent to your authorized EmailId."])); }
public void DeleteBooking(int UserId) { var data = context.UserFlightBookingDetails.SingleOrDefault(s => s.UserId == UserId); context.UserFlightBookingDetails.Remove(data); context.SaveChanges(); var userEmail = ""; userEmail = data.UserEmail; MailRequest request = new MailRequest(); request.ToEmail = userEmail; request.Subject = $"SpicejetBooking"; request.Body = $"<p style='color:red'> Dear,{data.UserFirstName} {data.UserMiddleName} {data.UserLastName} <br> Your Flight Has Been cancel Your Refund will be send on your Bank account And Any Quary then Contect Our Authority </p>"; try { if (userEmail != null) { mailService.SendEmailAsync(request); } } catch (Exception) { throw; } }
public async Task <IActionResult> OnPostAsync(string returnUrl = null) { returnUrl = returnUrl ?? Url.Content("~/"); ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); if (ModelState.IsValid) { var user = new AppUser { UserName = Input.Email, Email = Input.Email, FirstName = Input.FirstName, LastName = Input.LastName, PhoneNumber = Input.PhoneNumber, Dob = Input.Dob }; var result = await _userManager.CreateAsync(user, Input.Password); if (result.Succeeded) { _logger.LogInformation("User created a new account with password."); 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 = user.Id, code = code, returnUrl = returnUrl }, protocol: Request.Scheme); var mailRequest = new MailRequest() { ToEmail = Input.Email, Subject = "Confirm your email", Body = $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>." }; await _emailService.SendEmailAsync(mailRequest); if (_userManager.Options.SignIn.RequireConfirmedAccount) { return(RedirectToPage("RegisterConfirmation", new { email = Input.Email, returnUrl = returnUrl })); } else { await _signInManager.SignInAsync(user, isPersistent : false); return(LocalRedirect(returnUrl)); } } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } // If we got this far, something failed, redisplay form return(Page()); }
public void InsertBooking(UserFlightBookingDetail bookingDetail) { context.UserFlightBookingDetails.Add(bookingDetail); context.SaveChanges(); var userEmail = ""; userEmail = bookingDetail.UserEmail; MailRequest request = new MailRequest(); request.ToEmail = userEmail; request.Subject = $"Spicejet Booking"; request.Body = $"<p style='color:green'> Dear,{bookingDetail.UserFirstName} {bookingDetail.UserMiddleName} {bookingDetail.UserLastName} Your Flight Booking Successfully Done Your PNRNUMBER is :- {bookingDetail.PnrNumber}</p>"; try { if (userEmail != null) { mailService.SendEmailAsync(request); } } catch (Exception) { throw; } }
public async Task ForgotPassword(ForgotPasswordRequest model, string origin) { var account = await _userManager.FindByEmailAsync(model.Email); if (account == null) { return; } //var code = await _userManager.GeneratePasswordResetTokenAsync(account); //var route = "api/account/reset-password/"; //var _enpointUri = new Uri(string.Concat($"{origin}/", route)); var resetPasswordUri = await SendResetPasswordEmail(account, origin); var emailRequest = new MailRequest() { Body = $"Please ResetPasswrod your account by visiting this URL - {resetPasswordUri}", To = model.Email, Subject = "Reset Password", }; BackgroundJob.Enqueue(() => SendEmailBackgroundJob(emailRequest)); // await _mailService.SendAsync(emailRequest); }
public async Task SendAsync(MailRequest request) { try { var email = new MimeMessage { Sender = new MailboxAddress(_config.DisplayName, request.From ?? _config.From), Subject = request.Subject, Body = new BodyBuilder { HtmlBody = request.Body }.ToMessageBody() }; using var smtp = new SmtpClient(); await smtp.ConnectAsync(_config.Host, _config.Port, SecureSocketOptions.StartTls); await smtp.AuthenticateAsync(_config.UserName, _config.Password); await smtp.SendAsync(email); await smtp.DisconnectAsync(true); } catch (System.Exception ex) { _logger.LogError(ex.Message, ex); } }