// 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()); }
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); }