public void TestDeletionOfMessageInDeletedFolder()
        {
            hMailServer.Application application = SingletonProvider <Utilities> .Instance.GetApp();

            string deletedMessageText = _settings.ServerMessages.get_ItemByName("MESSAGE_FILE_MISSING").Text;

            hMailServer.Account account = SingletonProvider <Utilities> .Instance.AddAccount(_domain, "*****@*****.**", "test");

            SMTPClientSimulator.StaticSend(account.Address, account.Address, "Test", "SampleBody");
            hMailServer.IMAPFolder inbox = account.IMAPFolders.get_ItemByName("Inbox");;
            Utilities.AssertMessageExistsInFolder(inbox, 1);

            hMailServer.Messages messages = inbox.Messages;

            hMailServer.Message message = messages[0];
            DirectoryInfo       dir     = new DirectoryInfo(Path.GetFullPath(message.Filename));
            DirectoryInfo       parent  = dir.Parent.Parent.Parent;

            parent.Delete(true);

            DateTime timeBeforeDelete = DateTime.Now;

            messages.DeleteByDBID(message.ID);

            TimeSpan executionTime = DateTime.Now - timeBeforeDelete;

            Assert.Greater(1500, executionTime.TotalMilliseconds);
        }
Exemple #2
0
        public void TestSearchSpecficUID()
        {
            hMailServer.Application application = SingletonProvider <Utilities> .Instance.GetApp();

            hMailServer.Account oAccount = SingletonProvider <Utilities> .Instance.AddAccount(_domain, "*****@*****.**", "test");

            // Send a message to this account.
            SMTPClientSimulator oSMTP = new SMTPClientSimulator();

            for (int i = 0; i < 5; i++)
            {
                oSMTP.Send("*****@*****.**", "*****@*****.**", "Test1", "This is a test of IMAP Search");
            }

            IMAPSimulator.AssertMessageCount("*****@*****.**", "test", "INBOX", 5);

            hMailServer.Messages messages = oAccount.IMAPFolders.get_ItemByName("Inbox").Messages;

            int second = messages[1].UID;
            int third  = messages[2].UID;
            int fourth = messages[3].UID;


            IMAPSimulator oSimulator      = new IMAPSimulator();
            string        sWelcomeMessage = oSimulator.Connect();

            oSimulator.Logon("*****@*****.**", "test");
            Assert.IsTrue(oSimulator.SelectFolder("INBOX"));

            string result = oSimulator.SendSingleCommand(string.Format("a01 SORT (REVERSE DATE) UTF-8 ALL UID {0},{1}", second, third));

            Assert.IsTrue(result.StartsWith("* SORT 3 2"));

            result = oSimulator.SendSingleCommand(string.Format("a01 SORT (DATE) UTF-8 ALL UID {0},{1}", third, second));
            Assert.IsTrue(result.StartsWith("* SORT 2 3"));

            result = oSimulator.SendSingleCommand(string.Format("a01 SORT (DATE) UTF-8 ALL UID {0}:{1}", second, fourth));
            Assert.IsTrue(result.StartsWith("* SORT 2 3 4"));

            result = oSimulator.SendSingleCommand(string.Format("a01 SORT (DATE) UTF-8 ALL UID {0}:*", second));
            Assert.IsTrue(result.StartsWith("* SORT 2 3 4 5"));
        }
Exemple #3
0
        private void ConfirmAccountObject()
        {
            hMailServer.Account account = _application.Domains[0].Accounts.get_ItemByAddress("*****@*****.**");


            Assert.IsTrue(account.Active);
            Assert.AreEqual("AD", account.ADDomain);
            Assert.AreEqual(hMailServer.eAdminLevel.hAdminLevelDomainAdmin, account.AdminLevel);
            Assert.AreEqual("AU", account.ADUsername);
            Assert.AreEqual("FA", account.ForwardAddress);
            Assert.IsFalse(account.ForwardEnabled);
            Assert.IsTrue(account.ForwardKeepOriginal);
            Assert.IsFalse(account.IsAD);
            Assert.AreEqual(1250, account.MaxSize);
            Assert.AreEqual("First", account.PersonFirstName);
            Assert.AreEqual("Last", account.PersonLastName);
            Assert.IsTrue(account.SignatureEnabled);
            Assert.AreEqual("HTML", account.SignatureHTML);
            Assert.AreEqual("PLAIN", account.SignaturePlainText);
            Assert.AreEqual("VAC", account.VacationMessage);
            Assert.IsTrue(account.VacationMessageExpires);
            Assert.AreEqual("2020-01-01", account.VacationMessageExpiresDate.Substring(0, 10));
            Assert.IsTrue(account.VacationMessageIsOn);
            Assert.AreEqual("SUBJ", account.VacationSubject);

            // Confirm fetch account
            hMailServer.FetchAccount fa = account.FetchAccounts.get_Item(0);
            Assert.AreEqual(5, fa.DaysToKeepMessages);
            Assert.IsTrue(fa.Enabled);
            Assert.AreEqual(10, fa.MinutesBetweenFetch);
            Assert.AreEqual("test", fa.Name);
            Assert.AreEqual(1110, fa.Port);
            Assert.AreEqual(true, fa.ProcessMIMEDate);
            Assert.IsTrue(fa.ProcessMIMERecipients);
            Assert.AreEqual("test", fa.Username);
            Assert.IsFalse(fa.UseSSL);
            Assert.AreEqual("127.0.0.1", fa.ServerAddress);
            Assert.IsTrue(fa.UseAntiSpam);
            Assert.IsTrue(fa.UseAntiVirus);

            // Make sur no additional mail is downloaded. We have already downloaded it.
            DownloadFromExternalAccount(account, fa);

            hMailServer.Rule rule = account.Rules[0];
            Assert.AreEqual("MyRule", rule.Name);

            hMailServer.RuleCriteria criteria = rule.Criterias[0];
            Assert.AreEqual(hMailServer.eRuleMatchType.eMTGreaterThan, criteria.MatchType);
            Assert.AreEqual(hMailServer.eRulePredefinedField.eFTMessageSize, criteria.PredefinedField);
            Assert.AreEqual("0", criteria.MatchValue);

            hMailServer.RuleAction action = rule.Actions[0];
            Assert.AreEqual(hMailServer.eRuleActionType.eRAForwardEmail, action.Type);
            Assert.AreEqual("*****@*****.**", action.To);
            Assert.AreEqual("Test", action.Body);
            Assert.AreEqual("File", action.Filename);
            Assert.AreEqual("T", action.FromAddress);
            Assert.AreEqual("N", action.FromName);
            Assert.AreEqual("H", action.HeaderName);
            Assert.AreEqual("Folder", action.IMAPFolder);
            Assert.AreEqual("Script", action.ScriptFunction);
            Assert.AreEqual("Subj", action.Subject);
            Assert.AreEqual("Value", action.Value);

            hMailServer.IMAPFolder inbox = account.IMAPFolders.get_ItemByName("INBOX");

            hMailServer.Messages messages = inbox.Messages;

            if (_backupMessages)
            {
                Assert.AreEqual(6, inbox.CurrentUID);
                Assert.AreEqual(_folderCreationTime, inbox.CreationTime);

                Assert.AreEqual(5, messages.Count);
                Assert.AreEqual("Message 1 Subject", messages[0].Subject);
                Assert.IsTrue(messages[1].Body.Contains("Message 3 Body"));

                Assert.AreEqual(1, messages[0].UID);
                Assert.AreEqual(3, messages[1].UID);
            }
            else
            {
                Assert.AreEqual(0, messages.Count);
            }
        }
 internal Messages(hMailServer.Messages o)
 {
     _object = o;
 }
Exemple #5
0
 internal Messages(hMailServer.Messages o)
 {
     _object = o;
 }