コード例 #1
0
        public void Run(OxiteModuleConfigurationElement moduleConfiguration)
        {
            AppSettingsHelper settings = new AppSettingsHelper(moduleConfiguration.Settings.ToNameValueCollection());
            //TODO: (erikpo) Refactor GetNext call to not need an interval if possible
            TimeSpan interval  = settings.GetTimeSpan("SendTrackbacks.Interval", TimeSpan.FromMinutes(1));
            int      blockSize = settings.GetInt32("SendTrackbacks.BlockSize", 1);

            foreach (TrackbackOutbound trackback in trackbackOutboundService.GetNext(interval, blockSize))
            {
                try
                {
                    sendTrackback(trackback);

                    trackback.MarkAsCompleted();
                }
                catch
                {
                    trackback.MarkAsFailed();
                }
                finally
                {
                    trackbackOutboundService.Save(trackback);
                }
            }
        }
コード例 #2
0
        public void Run(OxiteModuleConfigurationElement moduleConfiguration)
        {
            AppSettingsHelper settings         = new AppSettingsHelper(moduleConfiguration.Settings.ToNameValueCollection());
            string            fromEmailAddress = settings.GetString("SendMessages.FromEmailAddress");
            SmtpClient        smtpClient       = getSmtpClient(moduleConfiguration);
            //TODO: (erikpo) Refactor GetNext call to not need an interval if possible
            TimeSpan interval  = settings.GetTimeSpan("SendMessages.Interval", TimeSpan.FromMinutes(1));
            int      blockSize = settings.GetInt32("SendMessages.BlockSize", 1);

            foreach (MessageOutbound message in messageService.GetNext(interval, blockSize))
            {
                try
                {
                    MailMessage messageToSend = new MailMessage(fromEmailAddress, message.To, message.Subject, message.Body);

                    messageToSend.IsBodyHtml = true;

                    smtpClient.Send(messageToSend);

                    message.MarkAsCompleted();
                }
                catch
                {
                    message.MarkAsFailed();
                }
                finally
                {
                    messageService.Save(message);
                }
            }
        }
コード例 #3
0
        private SmtpClient getSmtpClient(OxiteModuleConfigurationElement moduleConfiguration)
        {
            AppSettingsHelper settings = new AppSettingsHelper(moduleConfiguration.Settings.ToNameValueCollection());
            SmtpClient        client   = new SmtpClient();

            client.Host = settings.GetString("SmtpClient.Host");
            client.Port = settings.GetInt32("SmtpClient.Port", client.Port);
            client.UseDefaultCredentials = settings.GetBoolean("SmtpClient.UseDefaultCredentials", client.UseDefaultCredentials);

            string username = settings.GetString("SmtpClient.Credentials.Username", "");
            string password = settings.GetString("SmtpClient.Credentials.Password", "");
            string domain   = settings.GetString("SmtpClient.Credentials.Domain", "");

            if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(password))
            {
                client.Credentials = !string.IsNullOrEmpty(domain)
                    ? new NetworkCredential(username, password, domain)
                    : new NetworkCredential(username, password);
            }

            return(client);
        }
コード例 #4
0
 public void Unload(OxiteModuleConfigurationElement moduleConfiguration)
 {
 }
コード例 #5
0
 public void Initialize(OxiteModuleConfigurationElement moduleConfiguration)
 {
 }