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