示例#1
0
        // string email, string subject, string message
        public async Task <IActionResult> SendEmailAsync(UserForEmailDto userEmail)
        {
            // throw new Exception (userEmail.UserEmail + " " + userEmail.Subject + " " + userEmail.Message);
            await _utilService.SendEmail(userEmail);

            return(Ok());
        }
示例#2
0
        public async Task SendEmail(UserForEmailDto userEmail)
        {
            using (var client = new SmtpClient())
            {
                var credential = new NetworkCredential
                {
                    UserName = _configuration["Email:Email"],
                    Password = _configuration["Email:Password"]
                };

                client.Credentials = credential;
                client.Host        = _configuration["Email:Host"];
                client.Port        = int.Parse(_configuration["Email:Port"]);
                client.EnableSsl   = true;

                using (var emailMessage = new MailMessage())
                {
                    // userEmail.UserEmail
                    emailMessage.To.Add(new MailAddress("*****@*****.**"));
                    emailMessage.From    = new MailAddress(_configuration["Email:Email"]);
                    emailMessage.Subject = "FABPortfolio Site Inquiry : " + userEmail.Subject;
                    emailMessage.Body    = "From : " + userEmail.UserEmail + " Message : " + userEmail.Message;

                    client.Send(emailMessage);
                }
            }
            await Task.CompletedTask;
        }
        public async Task <IEnumerable <OrderDetailsDto> > SendEmailData(OrderDto orderDto)
        {
            UserForEmailDto userForEmailDto = await _unitOfWork.PaymentRepository.UserDetailsForEmail(orderDto);

            IEnumerable <OrderDetailsDto> orderDetailsDto = _unitOfWork.PaymentRepository.OrderHistoryData(orderDto);

            // Get last element of orderDetailsDto to get orderId and OrderDate
            OrderDetailsDto lastOrderDetailElement = orderDetailsDto.First();

            string emailBody = CreateBody(lastOrderDetailElement, orderDto, userForEmailDto);

            //var message = new Message(new string[] { "*****@*****.**" }, "Test Email async with attachment",
            //            "This is the content from our Email with attachment");

            var message = new Message(new string[] { userForEmailDto.UserEmail }, "Autumn Store_Proof of Purchase", emailBody);

            await _emailSender.SendEmailAsync(message);

            // return order history
            return(orderDetailsDto);
        }
        private string CreateBody(OrderDetailsDto lastOrderDetailElement, OrderDto orderDto, UserForEmailDto userForEmailDto)
        {
            //var webRoot = _webHostEnvironment.WebRootPath; //get wwwroot folder
            var pathToFile = _webHostEnvironment.WebRootPath
                             + Path.DirectorySeparatorChar.ToString()
                             + "Templates"
                             + Path.DirectorySeparatorChar.ToString()
                             + "EmailTemplates"
                             + Path.DirectorySeparatorChar.ToString()
                             + "OrderConfirmationMail.html";

            string emailBody = string.Empty;

            using (StreamReader reader = new StreamReader(pathToFile))
            {
                emailBody = reader.ReadToEnd();
            }

            //Replacing parameters
            emailBody = emailBody.Replace("{FirstName}", userForEmailDto.FirstName);
            emailBody = emailBody.Replace("{LastName}", userForEmailDto.LastName);
            emailBody = emailBody.Replace("{UserAddress}", userForEmailDto.UserAddress);
            emailBody = emailBody.Replace("{UserAddress2}", userForEmailDto.UserAddress2);
            emailBody = emailBody.Replace("{State}", userForEmailDto.State);
            emailBody = emailBody.Replace("{Country}", userForEmailDto.Country);
            emailBody = emailBody.Replace("{Zip}", userForEmailDto.Zip);

            emailBody = emailBody.Replace("{ReceiverFirstName}", orderDto.ReceiverFirstName);
            emailBody = emailBody.Replace("{ReceiverLastName}", orderDto.ReceiverLastName);
            emailBody = emailBody.Replace("{ReceiverAddress}", orderDto.ReceiverAddress);
            emailBody = emailBody.Replace("{ReceiverAddress2}", orderDto.ReceiverAddress2);
            emailBody = emailBody.Replace("{ReceiverState}", orderDto.ReceiverState);
            emailBody = emailBody.Replace("{ReceiverCountry}", orderDto.ReceiverCountry);
            emailBody = emailBody.Replace("{ReceiverZip}", orderDto.ReceiverZip.ToString());

            emailBody = emailBody.Replace("{OrderId}", lastOrderDetailElement.OrderId.ToString());
            emailBody = emailBody.Replace("{OrderDate}", lastOrderDetailElement.OrderDate.ToString());
            emailBody = emailBody.Replace("{OrderTotal}", orderDto.OrderTotal.ToString());

            //Ordered products
            List <OrderedProductsDto> orderedProductsDto = orderDto.OrderedProductsDto;

            for (int i = 0; i < orderedProductsDto.Count; i++)
            {
                emailBody = emailBody.Replace("{ProductName}", orderedProductsDto[i].ProductName);
                emailBody = emailBody.Replace("{Qty}", orderedProductsDto[i].Qty.ToString());
                emailBody = emailBody.Replace("{Price}", orderedProductsDto[i].Price.ToString());
                emailBody = emailBody.Replace("{TotalPriceForProduct}", (orderedProductsDto[i].Qty * orderedProductsDto[i].Price).ToString());
            }

            return(emailBody);
        }