示例#1
0
        // Token: 0x06000B31 RID: 2865 RVA: 0x00048204 File Offset: 0x00046404
        private static void EnsureJunkEmailRule(MailboxSession session, MapiEvent mapiEvent)
        {
            if (session == null)
            {
                throw new ArgumentNullException("session");
            }
            if (mapiEvent == null)
            {
                throw new ArgumentNullException("mapiEvent");
            }
            if (!session.Capabilities.CanHaveJunkEmailRule)
            {
                JunkEmailOptionsAssistant.Tracer.TraceDebug <Guid>(0L, "Skipping mailbox {0} because it can't have a junk e-mail rule.  Possibly an alternate mailbox.", session.MailboxOwner.MailboxInfo.MailboxGuid);
                return;
            }
            JunkEmailOptionsAssistant.Tracer.TraceDebug <Guid>(0L, "Ensuring junk e-mail rule for mailbox {0}", session.MailboxOwner.MailboxInfo.MailboxGuid);
            StoreObjectId defaultFolderId  = session.GetDefaultFolderId(DefaultFolderType.Inbox);
            StoreObjectId defaultFolderId2 = session.GetDefaultFolderId(DefaultFolderType.JunkEmail);

            if (defaultFolderId == null || defaultFolderId2 == null)
            {
                JunkEmailOptionsAssistant.Tracer.TraceDebug <Guid>(0L, "Cannot create junk e-mail rule for mailbox {0} because either the inbox or junk e-mail folder does not exist.", session.MailboxOwner.MailboxInfo.MailboxGuid);
                return;
            }
            if (JunkEmailOptionsAssistant.IsFolderCreationEvent(mapiEvent) && !JunkEmailOptionsAssistant.IsInboxOrJunkFolder(mapiEvent.ItemEntryId, defaultFolderId, defaultFolderId2))
            {
                JunkEmailOptionsAssistant.Tracer.TraceDebug(0L, "Created folder is not Inbox or Junk E-mail folder.  Skipping uninteresting event.");
                return;
            }
            JunkEmailRule.JunkEmailStatus junkEmailRuleStatus = session.GetJunkEmailRuleStatus();
            if (junkEmailRuleStatus != JunkEmailRule.JunkEmailStatus.None)
            {
                return;
            }
            JunkEmailOptionsAssistant.Tracer.TraceDebug <Guid>(0L, "Creating and enabling junk e-mail rule for mailbox {0}.", session.MailboxOwner.MailboxInfo.MailboxGuid);
            JunkEmailRule junkEmailRule = session.JunkEmailRule;

            junkEmailRule.IsEnabled = true;
            junkEmailRule.Save();
        }
示例#2
0
        private void CheckAndCreateJunkEmailRule(MailboxSession session)
        {
            if (session == null)
            {
                throw new ArgumentNullException("session");
            }
            StoreObjectId defaultFolderId  = session.GetDefaultFolderId(DefaultFolderType.Inbox);
            StoreObjectId defaultFolderId2 = session.GetDefaultFolderId(DefaultFolderType.JunkEmail);

            if (defaultFolderId == null || defaultFolderId2 == null)
            {
                this.WriteWarning(Strings.CannotCreateJunkEmailRule(this.Identity.ToString()));
                return;
            }
            if (session.GetJunkEmailRuleStatus() == JunkEmailRule.JunkEmailStatus.None)
            {
                JunkEmailRule filteredJunkEmailRule = session.FilteredJunkEmailRule;
                filteredJunkEmailRule.IsEnabled = true;
                filteredJunkEmailRule.Save();
                base.WriteObject(Strings.CreatedJunkEmailRule(this.Identity.ToString()).ToString());
            }
        }