public ResponseDTO SendMail(MailRequestDTO request) { var result = _mailService.SendEmailAsync(request); if (result != null) { Log.Information("Sending Bill is completed!"); return(new ResponseDTO() { Data = result, ErrorDescription = "", Statuscode = "", }); } else { return new ResponseDTO() { Data = "", ErrorDescription = "Sending Bill is Failed!", Statuscode = HttpStatusCode.BadRequest.ToString(), } }; } }
public async Task SendMailAsync(MailRequestDTO mailRequest) { string FilePath = Directory.GetCurrentDirectory() + "/Infrastructure/MailTemplate/ConfirmationMailTemplate.html"; StreamReader streamReader = new StreamReader(FilePath); string mailText = streamReader.ReadToEnd(); streamReader.Close(); mailText = mailText.Replace("[username]", mailRequest.Body).Replace("[link]", mailRequest.Url).Replace("[email]", mailRequest.ToEmail); var email = new MimeMessage(); email.Sender = MailboxAddress.Parse(mailSettings.Mail); email.To.Add(MailboxAddress.Parse(mailRequest.ToEmail)); email.Subject = $"Welcome {mailRequest.ToEmail}"; var builder = new BodyBuilder(); builder.HtmlBody = mailText; 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); }
private string GetMailBody(MailRequestDTO mailRequest) { var absolutePath = Path.GetDirectoryName(Assembly.GetEntryAssembly()?.Location); var templateFilePath = Path.Combine(absolutePath, "BillEmailTemplate.html"); var mailBody = string.Empty; using (var streamReader = new StreamReader(templateFilePath)) mailBody = streamReader.ReadToEnd(); var orderId = _paymentService.GetOrderIDByUserName(mailRequest.UserName).Result; double total = 0.0; mailBody = mailBody.Replace("{#OrderID}", orderId.ToString("D8")); var products = string.Empty; foreach (var item in mailRequest.BodyProducts) { var cost = (item.Quantity * item.Price).ToString("0.00"); products += $@"<tr> <td width='75%' align='left' style='font-family: Open Sans, Helvetica, Arial, sans-serif; font-size: 16px; font-weight: 400; line-height: 24px; padding: 15px 10px 5px 10px;'> {item.ProductName} ({item.Quantity}) </td> <td width='25%' align='left' style='font-family: Open Sans, Helvetica, Arial, sans-serif; font-size: 16px; font-weight: 400; line-height: 24px; padding: 15px 10px 5px 10px;'> ${cost} </td> </tr>"; total = total + (item.Quantity * item.Price); } mailBody = mailBody.Replace("{#Products}", products); mailBody = mailBody.Replace("{#TotalCost}", total.ToString("0.00")); return(mailBody); }
public IActionResult SendMail() { MailRequestDTO mailRequest = new MailRequestDTO { ToEmail = "*****@*****.**", Subject = "Message from Medbay hospital", Body = "New prescription from MedbayTech hospital!" }; mailService.SendMailAsync(mailRequest).Wait(); return(Ok()); }
public IActionResult SendMail(string email) { MailRequestDTO mailRequest = new MailRequestDTO { ToEmail = email, Subject = "Message from Medbay hospital", Body = "Made an offer from MedbayTech hospital!" }; _mailService.SendMailAsync(mailRequest).Wait(); return(Ok()); }
private void GenerateEmailInfo(Patient patient) { var link = GenerateUrl(patient.Id, patient.Token); string email = patient.Email; MailRequestDTO mailRequest = new MailRequestDTO { ToEmail = email, Url = link }; SendMail(mailRequest); }
public async void SendMail(MailRequestDTO request) { try { await _mailService.SendMailAsync(request); } catch (Exception ex) { throw; } }
public IActionResult SendMail() { foreach (Pharmacy pharmacy in _pharmacyGateway.GetAll()) { MailRequestDTO mailRequest = new MailRequestDTO { ToEmail = pharmacy.Email, Subject = "Message from Medbay hospital", Body = "New tender opened in MedbayTech hospital!" }; _mailService.SendMailAsync(mailRequest).Wait(); } return(Ok()); }
public async Task SendMailAsync(MailRequestDTO 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(); builder.HtmlBody = mailRequest.Body; email.Body = builder.ToMessageBody(); using var smtp = new SmtpClient(); await smtp.ConnectAsync(mailSettings.Host, mailSettings.Port, SecureSocketOptions.StartTls); await smtp.AuthenticateAsync(mailSettings.Mail, mailSettings.Password); await smtp.SendAsync(email); await smtp.DisconnectAsync(true); }
/// <summary> /// Send Emails /// </summary> /// <param name="mailRequest"></param> /// <returns></returns> public async Task <Object> SendEmailAsync(MailRequestDTO mailRequest) { var mailBody = GetMailBody(mailRequest); MailMessage message = new MailMessage(); SmtpClient smtp = new SmtpClient(); message.From = new MailAddress(_mailSettings.Mail); message.To.Add(new MailAddress(mailRequest.ToEmail)); message.Subject = mailRequest.Subject; if (mailRequest.Attachments != null) { foreach (var file in mailRequest.Attachments) { if (file.Length > 0) { using (var ms = new MemoryStream()) { file.CopyTo(ms); var fileBytes = ms.ToArray(); Attachment attachment = new Attachment(new MemoryStream(fileBytes), file.FileName); message.Attachments.Add(attachment); } } } } message.IsBodyHtml = true; message.Body = mailBody; smtp.Port = _mailSettings.Port; smtp.Host = _mailSettings.Host; smtp.EnableSsl = false; smtp.UseDefaultCredentials = false; smtp.Credentials = new NetworkCredential(_mailSettings.UserName, _mailSettings.Password); smtp.DeliveryMethod = SmtpDeliveryMethod.Network; await smtp.SendMailAsync(message); return("Ok"); }
public void Test_Sending_Email() { orderLineItems = new List <OrderLineItemDTO>(); orderLineItems.Add(new OrderLineItemDTO() { ProductName = "Oven", ProductID = 1, Price = 25.00, Quantity = 2 }); orderLineItems.Add(new OrderLineItemDTO() { ProductName = "Cooker", ProductID = 2, Price = 15.00, Quantity = 4 }); var requestDto = new MailRequestDTO { ToEmail = "*****@*****.**", Subject = "Test Sending Email", Attachments = null, BodyProducts = orderLineItems, UserName = "******" }; //Arrange var emailService = new EmailService(_options, paymentService.Object); var result = emailService.SendEmailAsync(requestDto); //Arrest Assert.AreEqual("Ok", result.Result); }