Пример #1
0
        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);
        }
Пример #4
0
        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);
            }
        }
Пример #5
0
 public EmailService(ISettingsService settingsService)
 {
     _config = settingsService.GetConfig().EmailServiceConfig;
 }