Exemple #1
0
        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(),
                       }
            };
        }
    }
Exemple #2
0
        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);
        }
Exemple #3
0
        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());
        }
Exemple #5
0
        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;
     }
 }
Exemple #8
0
 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());
 }
Exemple #9
0
        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);
        }
Exemple #10
0
        /// <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");
        }
Exemple #11
0
        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);
        }