public ShedulerService(IEmailService emailService, IFormMessageService formMessageService, IEmailSettings emailSettings, IMessage message, ISiteSettings siteSettings)
 {
     _emailService       = emailService;
     _formMessageService = formMessageService;
     _emailSettings      = emailSettings;
     _siteSettings       = siteSettings;
     _message            = message;
 }
            public async Task Execute(IJobExecutionContext context)
            {
                JobDataMap dataMap = context.JobDetail.JobDataMap;

                _emailService       = (IEmailService)dataMap["emailService"];
                _formMessageService = (IFormMessageService)dataMap["formMessageService"];
                _emailSettings      = (IEmailSettings)dataMap["emailSettings"];
                _message            = (IMessage)dataMap["message"];
                _siteSettings       = (ISiteSettings)dataMap["siteSettings"];
                await _emailService.SendEmailAsync(_formMessageService, _emailSettings, _message, _siteSettings);
            }
Exemple #3
0
        public async Task SendEmailAsync(IFormMessageService formMessageService, IEmailSettings emailSettings, IMessage message, ISiteSettings siteSettings)
        {
            var emailMessage = new MimeMessage();

            emailMessage.From.Add(new MailboxAddress(message.SenderName, message.SenderEmail));
            emailMessage.To.Add(new MailboxAddress("", message.RecieverEmail));
            emailMessage.Subject = message.MessageSubject;
            emailMessage.Body    = new TextPart(MimeKit.Text.TextFormat.Html)
            {
                Text = message.MessageBody + Environment.NewLine + formMessageService.GetMessage(siteSettings)
            };

            using (var client = new SmtpClient())
            {
                await client.ConnectAsync(emailSettings.Host, emailSettings.Port, emailSettings.EnableSSL);

                await client.AuthenticateAsync(emailSettings.UserEmail, emailSettings.UserPassword);

                await client.SendAsync(emailMessage);

                await client.DisconnectAsync(true);
            }
        }