private async Task Send(Email e, EmailServiceConfig config) { using (var smtp = new SmtpClient()) { var msg = new MailMessage { Subject = e.Subject, Body = e.Body, IsBodyHtml = true, To = { new MailAddress(e.ToEmail, e.ToName) } }; var from = ( from fromEmail in e.FromEmail.MaybeDefined() where !fromEmail.NullOrEmpty() from a in new MailAddress(fromEmail, e.FromName) select a ).Or(() => from fromEmail in config.DefaultFromEmail.MaybeDefined() where !fromEmail.NullOrEmpty() from a in new MailAddress(fromEmail, config.DefaultFromName) select a ); if (from.Kind == Maybe.Kind.Value) { msg.From = from.Value; } await smtp.SendMailAsync(msg); } }
public async Task <ActionResult> SetEmailConfig([FromForm] EmailServiceConfig model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } await _emailConfig.UpdateSettingsAsync(model); return(Ok("Email settings updated")); }
public async void SetEmailConfig_ModelIsNotValid_BadRequestObjectResult() { //Arrange var settings = new EmailServiceConfig(); _emailConfig.Setup(cfg => cfg.UpdateSettingsAsync(settings)); _cfgController.ModelState.AddModelError("ModelState", "Error"); //Act var response = await _cfgController.SetEmailConfig(settings); //Assert Assert.NotNull(response); Assert.IsType <BadRequestObjectResult>(response); }
public static void SendMessage(this MimeMessage message, EmailServiceConfig config) { using (var client = new SmtpClient()) { client.Connect(config.Host, config.Port, config.UseSSL); // Note: only needed if the SMTP server requires authentication if (config.UseAuthentication) { client.Authenticate(config.UserName, config.Password); } client.Send(message); client.Disconnect(true); } }
public EmailService(ISettingsService settingsService) { _config = settingsService.GetConfig().EmailServiceConfig; }