Exemplo n.º 1
0
 public EmailWatcher(IEmailPackageSerialiser packageSerialiser, EmailProcessingConfigurationSection emailProcessingConfiguration)
 {
     _packageSerialiser = packageSerialiser;
     _emailProcessingConfiguration = emailProcessingConfiguration;
     _watchLocation = _emailProcessingConfiguration.PickupLocation;
     _failedLocation = _emailProcessingConfiguration.FailedLocation;
     _deliveredLocation = _emailProcessingConfiguration.DeliveredLocation;
 }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            XmlConfigurator.Configure();
            IEmailPackageSerialiser             packageSerializer = null;
            IEmailWatcher                       watcher           = null;
            IEmailSender                        sender            = null;
            EmailProcessingConfigurationSection configuration     = EmailProcessingConfigurationManager.Section;

            Console.Clear();
            var client = AWSClientFactory.CreateAmazonSimpleEmailServiceClient(configuration.Amazon.Key,
                                                                               configuration.Amazon.Secret);
            var emails = client.ListVerifiedEmailAddresses(new ListVerifiedEmailAddressesRequest());

            Console.WriteLine("verified emails:");
            foreach (var email in emails.ListVerifiedEmailAddressesResult.VerifiedEmailAddresses)
            {
                Console.WriteLine(email);
            }

            try
            {
                if (!Directory.Exists(configuration.PickupLocation))
                {
                    Directory.CreateDirectory(configuration.PickupLocation);
                }
                if (!Directory.Exists(configuration.DeliveredLocation))
                {
                    Directory.CreateDirectory(configuration.DeliveredLocation);
                }
                if (!Directory.Exists(configuration.FailedLocation))
                {
                    Directory.CreateDirectory(configuration.FailedLocation);
                }


                packageSerializer = new EmailPackageSerialiser();
                watcher           = new EmailWatcher(packageSerializer);
                sender            = EmailSenderFactory.CreateSenderFromConfiguration();

                watcher.OnMailToSend += sender.SendMail;

                Console.WriteLine("Watching " + configuration.PickupLocation + ". Press Esc to stop");
                watcher.StartWatching();

                ConsoleKeyInfo key = new ConsoleKeyInfo();
                while (key.Key != ConsoleKey.Escape)
                {
                    key = Console.ReadKey();
                }
            }
            finally
            {
                if (watcher != null)
                {
                    watcher.Dispose();
                }
            }
        }
        protected override void OnStart(string[] args)
        {
            log4net.Config.XmlConfigurator.Configure();

            try
            {
                EmailProcessingConfigurationSection configuration = EmailProcessingConfigurationManager.GetConfiguration();

                if (configuration == null)
                {
                    _log.Warn("Could not load configuration");
                } else
                {
                    _log.Info("Configuration loaded");
                    _log.InfoFormat("amazon key: {0}", configuration.Amazon.Key);
                    _log.InfoFormat("amazon key: {0}", configuration.Amazon.Secret);
                }

                var client = AWSClientFactory.CreateAmazonSimpleEmailServiceClient(configuration.Amazon.Key,
                                                                                   configuration.Amazon.Secret);

                if (!Directory.Exists(configuration.PickupLocation))
                    Directory.CreateDirectory(configuration.PickupLocation);
                if (!Directory.Exists(configuration.DeliveredLocation))
                    Directory.CreateDirectory(configuration.DeliveredLocation);
                if (!Directory.Exists(configuration.FailedLocation))
                    Directory.CreateDirectory(configuration.FailedLocation);

                packageSerializer = new EmailPackageSerialiser();
                watcher = new EmailWatcher(packageSerializer, configuration);
                sender = EmailSenderFactory.CreateSenderFromConfiguration(configuration);

                watcher.OnMailToSend += sender.SendMail;

                watcher.StartWatching();

                _log.Info("Email relay service watching " + configuration.PickupLocation);
                var appenders = _log.Logger.Repository.GetAppenders();

                foreach (var appender in appenders)
                {
                    EventLog.WriteEntry("Appender: " + appender.Name);
                }
            } catch(Exception ex)
            {
                _log.Fatal("Failed to start service", ex);
                throw;
            }

            _log.Info("Email relay service started");
        }
Exemplo n.º 4
0
 public EmailWatcher(string watchLocation, IEmailPackageSerialiser packageSerialiser)
 {
     _watchLocation = watchLocation;
     _packageSerialiser = packageSerialiser;
 }
 protected EmailPackageRelayer(string outputLocation)
 {
     OutputLocation = outputLocation;
     PackageSerialiser = new EmailPackageSerialiser();
 }