Esempio n. 1
0
        public void FeedbackLoop()
        {
            using (CreateTransactionScopeObject())
            {
                EmailProcessingDetails processingDetail = EventsManager.Instance.ProcessFeedbackLoop(FeedbackLoopEmails.AolAbuse);
                Assert.AreEqual(EmailProcessingResult.SuccessAbuse, processingDetail.ProcessingResult);
                MantaEventCollection events = EventsManager.Instance.GetEvents();
                Assert.AreEqual(1, events.Count);
                Assert.IsTrue(events[0] is MantaAbuseEvent);
                MantaAbuseEvent abuse = (MantaAbuseEvent)events[0];
                Assert.AreEqual("test@remote", abuse.EmailAddress);
                Assert.AreEqual("TestData", abuse.SendID);


                processingDetail = EventsManager.Instance.ProcessFeedbackLoop(FeedbackLoopEmails.YahooAbuse);
                Assert.AreEqual(EmailProcessingResult.SuccessAbuse, processingDetail.ProcessingResult);
                events = EventsManager.Instance.GetEvents();
                Assert.AreEqual(2, events.Count);
                Assert.IsTrue(events[1] is MantaAbuseEvent);
                abuse = (MantaAbuseEvent)events[1];
                Assert.AreEqual("*****@*****.**", abuse.EmailAddress);
                Assert.AreEqual("TestData", abuse.SendID);

                processingDetail = EventsManager.Instance.ProcessFeedbackLoop(FeedbackLoopEmails.HotmailAbuse);
                Assert.AreEqual(EmailProcessingResult.SuccessAbuse, processingDetail.ProcessingResult);
                events = EventsManager.Instance.GetEvents();
                Assert.AreEqual(3, events.Count);
                Assert.IsTrue(events[2] is MantaAbuseEvent);
                abuse = (MantaAbuseEvent)events[2];
                Assert.AreEqual("*****@*****.**", abuse.EmailAddress);
                Assert.AreEqual("TestData", abuse.SendID);
            }
        }
Esempio n. 2
0
        public void NonDeliveryReport()
        {
            using (CreateTransactionScopeObject())
            {
                string emailContent = System.IO.File.OpenText(@".\..\..\NonDeliveryReport Test Email.eml").ReadToEnd();

                EmailProcessingDetails processingDetail = EventsManager.Instance.ProcessBounceEmail(emailContent);

                Assert.AreEqual(EmailProcessingResult.SuccessBounce, processingDetail.ProcessingResult);
                MantaEventCollection events = EventsManager.Instance.GetEvents();
                Assert.AreEqual(1, events.Count);
                Assert.IsTrue(events[0] is MantaBounceEvent);
                MantaBounceEvent bounce = (MantaBounceEvent)events[0];
                Assert.AreEqual(MantaBounceCode.BadEmailAddress, bounce.BounceInfo.BounceCode);
                Assert.AreEqual(MantaBounceType.Hard, bounce.BounceInfo.BounceType);
                Assert.AreEqual("*****@*****.**", bounce.EmailAddress);
                Assert.AreEqual("550 5.1.1 unknown or illegal alias: [email protected]", bounce.Message);
                Assert.AreEqual("TestData", bounce.SendID);
            }
        }
Esempio n. 3
0
        public void SmtpResponseTest()
        {
            using (CreateTransactionScopeObject())
            {
                EmailProcessingDetails processingDetails;


                bool result = EventsManager.Instance.ProcessSmtpResponseMessage("550 User Unknown", "*****@*****.**", 1, out processingDetails);
                Assert.IsTrue(result);

                MantaEventCollection events = EventsManager.Instance.GetEvents();
                Assert.AreEqual(1, events.Count);
                Assert.IsTrue(events[0] is MantaBounceEvent);
                MantaBounceEvent bounce = (MantaBounceEvent)events[0];
                Assert.AreEqual(MantaBounceCode.BadEmailAddress, bounce.BounceInfo.BounceCode);
                Assert.AreEqual(MantaBounceType.Hard, bounce.BounceInfo.BounceType);
                Assert.AreEqual("*****@*****.**", bounce.EmailAddress);
                Assert.AreEqual("550 User Unknown", bounce.Message);
                Assert.AreEqual("TestData", bounce.SendID);
            }
        }
Esempio n. 4
0
        public void TimedOutInQueue()
        {
            using (System.Transactions.TransactionScope ts = CreateTransactionScopeObject())
            {
                MantaEventCollection events = EventsManager.Instance.GetEvents();
                int initialMaxEventID       = events.Max(e => e.ID);


                bool result = false;
                EmailProcessingDetails processingDetails;

                result = EventsManager.Instance.ProcessSmtpResponseMessage(MtaParameters.TIMED_OUT_IN_QUEUE_MESSAGE, "*****@*****.**", 1, out processingDetails);
                Assert.IsTrue(result);
                Assert.IsNull(processingDetails);



                // Check an Event has been created.
                events = EventsManager.Instance.GetEvents();
                int newMaxEventID = events.Max(e => e.ID);

                Assert.AreNotEqual(initialMaxEventID, newMaxEventID);


                MantaEvent ev = events.First(e => e.ID == newMaxEventID);

                // Check the new Event record.
                Assert.IsTrue(ev is MantaTimedOutInQueueEvent);
                Assert.AreEqual(ev.ID, newMaxEventID);
                Assert.AreEqual(ev.EventType, MantaEventType.TimedOutInQueue);
                Assert.AreEqual(ev.EmailAddress, "*****@*****.**");
                Assert.AreEqual(ev.SendID, SendDB.GetSend(1).ID);
                Assert.That(ev.EventTime, Is.EqualTo(DateTime.UtcNow).Within(TimeSpan.FromSeconds(1)));                 // Depends on how long it takes to get the Events out of the DB.
                Assert.IsFalse(ev.Forwarded);
            }
        }