예제 #1
0
 public new void SetUp()
 {
     _queue  = _application.GlobalObjects.DeliveryQueue;
     _status = _application.Status;
     // add an account to send from
     _account = SingletonProvider <Utilities> .Instance.AddAccount(_domain, "*****@*****.**", "test");
 }
 public new void SetUp()
 {
     _status = SingletonProvider<Utilities>.Instance.GetApp().Status;
     string logFile = _settings.Logging.CurrentDefaultLog;
     if (File.Exists(logFile))
         File.Delete(logFile);
 }
예제 #3
0
        private static int GetNumberOfMessagesInDeliveryQueue()
        {
            hMailServer.Application application = SingletonProvider <Utilities> .Instance.GetApp();

            hMailServer.DeliveryQueue queue  = application.GlobalObjects.DeliveryQueue;
            hMailServer.Status        status = application.Status;

            string messages = status.UndeliveredMessages;

            if (messages.Length < 4)
            {
                return(0);
            }

            string[] messageList = status.UndeliveredMessages.Split('\n');

            int count = 0;

            foreach (string message in messageList)
            {
                if (message.Length < 4)
                {
                    continue;
                }

                string recipients = message.Split('\t')[3];

                string[] recipientList = recipients.Split(',');

                count += recipientList.Length;
            }

            return(count);
        }
예제 #4
0
 public new void SetUp()
 {
     _queue = _application.GlobalObjects.DeliveryQueue;
      _status = _application.Status;
      // add an account to send from
      _account = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test");
 }
        public new void SetUp()
        {
            _status = SingletonProvider <Utilities> .Instance.GetApp().Status;

            string logFile = _settings.Logging.CurrentDefaultLog;

            if (File.Exists(logFile))
            {
                File.Delete(logFile);
            }
        }
예제 #6
0
        private void ShowStatistics()
        {
            hMailServer.Status status = _application.Status;

            textProcessedMessages.Text         = status.ProcessedMessages.ToString();
            textMessagesContainingViruses.Text = status.RemovedViruses.ToString();
            textMessagesContainingSpam.Text    = status.RemovedSpamMessages.ToString();
            textSMTPSessions.Text = status.get_SessionCount(eSessionType.eSTSMTP).ToString();
            textPOP3Sessions.Text = status.get_SessionCount(eSessionType.eSTPOP3).ToString();
            textIMAPSessions.Text = status.get_SessionCount(eSessionType.eSTIMAP).ToString();
            labelStartTime.Text   = status.StartTime;

            Marshal.ReleaseComObject(status);
        }
예제 #7
0
        public void AssertBounceMessageExistsInQueue(string bounceTo)
        {
            hMailServer.Status status = application.Status;
            for (int i = 0; i < 100; i++)
            {
                if (status.UndeliveredMessages.Length == 0 || status.UndeliveredMessages.Contains("\t" + bounceTo))
                {
                    return;
                }

                Thread.Sleep(100);
            }

            Assert.Fail("Delivery queue not empty");
        }
예제 #8
0
        private static void DeleteMessagesInQueue()
        {
            hMailServer.Application application = SingletonProvider <Utilities> .Instance.GetApp();

            hMailServer.DeliveryQueue queue  = application.GlobalObjects.DeliveryQueue;
            hMailServer.Status        status = application.Status;

            string[] messages = status.UndeliveredMessages.Split('\n');
            foreach (string message in messages)
            {
                if (message.Length < 10)
                {
                    continue;
                }

                string[] info = message.Split('\t');
                int      id   = Convert.ToInt32(info[0]);

                queue.Remove(id);
            }

            application.SubmitEMail();
        }
예제 #9
0
        private void RefreshDeliveryQueue()
        {
            using (new WaitCursor())
            {
                listDeliveryQueue.Items.Clear();

                hMailServer.Status status = _application.Status;

                string queue = status.UndeliveredMessages;

                string[] messages = queue.Split(Environment.NewLine.ToCharArray());

                List <ListViewItem> itemsToAdd = new List <ListViewItem>();

                foreach (string message in messages)
                {
                    if (message.Length == 0)
                    {
                        continue;
                    }

                    string[] columns = message.Split('\t');

                    ListViewItem item = new ListViewItem(columns[0]);
                    item.SubItems.Add(columns[1]);
                    item.SubItems.Add(columns[2]);
                    item.SubItems.Add(columns[3]);

                    if (columns[4] == "1901-01-01 00:00:00")
                    {
                        item.SubItems.Add("As soon as possible");
                    }
                    else
                    // This is added to show HOLD in Status
                    // Note ends in 1 to signify difference
                    if (columns[4] == "1901-01-01 00:00:01")
                    {
                        item.SubItems.Add("Route HOLD");
                    }
                    else
                    {
                        item.SubItems.Add(columns[4]);
                    }

                    item.SubItems.Add(columns[7]);

                    item.SubItems.Add(columns[5]);

                    item.Tag = columns[0];

                    itemsToAdd.Add(item);
                }

                listDeliveryQueue.Items.AddRange(itemsToAdd.ToArray());

                string messagesCount = "%d messages in queue";
                messagesCount = messagesCount.Replace("%d", listDeliveryQueue.Items.Count.ToString());
                labelNumberOfMessages.Text = messagesCount;
                Marshal.ReleaseComObject(status);
            }
        }
예제 #10
0
 public new void SetUp()
 {
     _queue = _application.GlobalObjects.DeliveryQueue;
      _status = _application.Status;
 }