public IActionResult sendEmail(ReceivedEmailDto dto) { var setupValue = _setupRepo.getQueryable().ToList(); dto.receiver_email = setupValue.Where(a => a.key == Web.Models.SetupKeys.getEmailKey).SingleOrDefault()?.value; var email_password = setupValue.Where(a => a.key == Web.Models.SetupKeys.getEmailPasswordKey).SingleOrDefault()?.value; var email_host = setupValue.Where(a => a.key == Web.Models.SetupKeys.getEmailHostKey).SingleOrDefault()?.value; var email_port = setupValue.Where(a => a.key == Web.Models.SetupKeys.getEmailPortKey).SingleOrDefault()?.value; if (ModelState.IsValid) { try { _emailSenderService.send(dto, email_password, email_host, email_port); TempData["email-message"] = "Message sent"; } catch (EmailSendFailureException ex) { TempData["email-message"] = "Failed to send email"; } catch (Exception ex) { TempData["email-message"] = ex.Message; } } return(RedirectToAction("index")); }
public void send(ReceivedEmailDto email_detail, string email_password, string email_host, string email_port) { try { using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required)) { try { sendEmail(email_detail, email_password, email_host, email_port); } catch (Exception ex) { throw new EmailSendFailureException(ex.Message); } ReceivedEmail receivedEmail = new ReceivedEmail(); _receivedEmailMaker.copy(ref receivedEmail, email_detail); _receivedEmailRepo.insert(receivedEmail); tx.Complete(); } } catch (Exception) { throw; } }
private void sendEmail(ReceivedEmailDto email_detail, string email_password, string email_host, string email_port) { if (!email_detail.isReceiverEmailValid()) { throw new InvalidValueException("Receiver email is not valid."); } var mailMessage = new MailMessage(email_detail.sender_email, email_detail.receiver_email); mailMessage.Subject = email_detail.subject; mailMessage.Body = email_detail.message; using (SmtpClient smtp = new SmtpClient()) { smtp.Host = email_host; smtp.Port = Convert.ToInt32(email_port); smtp.UseDefaultCredentials = true; smtp.Credentials = new NetworkCredential(email_detail.receiver_email, email_password); smtp.EnableSsl = true; smtp.DeliveryMethod = SmtpDeliveryMethod.Network; smtp.Send(mailMessage); } }
public void copy(ref ReceivedEmail received_email, ReceivedEmailDto received_email_dto) { received_email.subject = received_email_dto.subject.Trim(); received_email.sender_email = received_email_dto.sender_email.Trim(); received_email.first_name = received_email_dto.first_name.Trim(); received_email.last_name = received_email_dto.last_name.Trim(); received_email.message = received_email_dto.message.Trim(); }