Exemplo n.º 1
0
        /// <summary>
        /// Constructor
        /// </summary>
        public RaspMailHandler(IMailHandlerConfiguration configuration)
        {
            IMailServerConfiguration sendingServerConfiguration   = configuration.SendingServerConfiguration;
            IMailServerConfiguration recievingServerConfiguration = configuration.RecievingServerConfiguration;
            Type outBoxImplementationType = configuration.OutBoxImplementationType;
            Type inBoxImplementationType  = configuration.InBoxImplementationType;

            _inboxFactory = InboxFactory.GetInstance();

            _inbox = _inboxFactory.GetInbox(recievingServerConfiguration, inBoxImplementationType, this);

            _outbox = (IOutbox)outBoxImplementationType.GetConstructor(new Type[0]).Invoke(null);
            _outbox.OutboxServerConfiguration = sendingServerConfiguration;


            if (_inbox != null)
            {
                _inbox.OnExceptionThrown  += new MailboxExceptionThrown(CallbackExceptionThrown);
                _inbox.OnInboxStateChange += new OnInboxStateChangeDelegate(CallbackOnInboxStateChange);
            }
            if (_outbox != null)
            {
                _outbox.OnExceptionThrown += new MailboxExceptionThrown(CallbackExceptionThrown);
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// Returns the singleton instance of the InboxFactory
 /// </summary>
 /// <returns></returns>
 public static InboxFactory GetInstance()
 {
     lock (_instanceLock) {
         if (_instance == null)
             _instance = new InboxFactory();
         return _instance;
     }
 }