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"); }