public override void Apply(MrsPSHandler psHandler, MailboxSession mailboxSession)
        {
            JunkEmailRule junkEmailRule = mailboxSession.JunkEmailRule;

            if (this.TrustedSenderDomain != null)
            {
                this.AddEntriesToCollection(junkEmailRule.TrustedSenderDomainCollection, "TrustedSenderDomainCollection", mailboxSession.MailboxGuid, this.TrustedSenderDomain);
            }
            if (this.TrustedSenderEmail != null)
            {
                this.AddEntriesToCollection(junkEmailRule.TrustedSenderEmailCollection, "TrustedSenderEmailCollection", mailboxSession.MailboxGuid, this.TrustedSenderEmail);
            }
            if (this.BlockedSenderDomain != null)
            {
                this.AddEntriesToCollection(junkEmailRule.BlockedSenderDomainCollection, "BlockedSenderDomainCollection", mailboxSession.MailboxGuid, this.BlockedSenderDomain);
            }
            if (this.BlockedSenderEmail != null)
            {
                this.AddEntriesToCollection(junkEmailRule.BlockedSenderEmailCollection, "BlockedSenderEmailCollection", mailboxSession.MailboxGuid, this.BlockedSenderEmail);
            }
            if (this.TrustedRecipientDomain != null)
            {
                this.AddEntriesToCollection(junkEmailRule.TrustedRecipientDomainCollection, "TrustedRecipientDomainCollection", mailboxSession.MailboxGuid, this.TrustedRecipientDomain);
            }
            if (this.TrustedRecipientEmail != null)
            {
                this.AddEntriesToCollection(junkEmailRule.TrustedRecipientEmailCollection, "TrustedRecipientEmailCollection", mailboxSession.MailboxGuid, this.TrustedRecipientEmail);
            }
            if (this.TrustedContactsEmail != null)
            {
                IRecipientSession adrecipientSession = mailboxSession.GetADRecipientSession(true, ConsistencyMode.IgnoreInvalid);
                if (adrecipientSession == null)
                {
                    string itemList = this.TrustedContactsEmail.Aggregate((string result, string email) => result + ", " + email);
                    throw new MailboxSettingsJunkMailErrorPermanentException("TrustedContactsEmail", itemList, "error getting RecipientSession");
                }
                junkEmailRule.SynchronizeContactsCache();
                foreach (string email2 in this.TrustedContactsEmail)
                {
                    junkEmailRule.AddTrustedContact(email2, adrecipientSession);
                }
            }
            if (this.SendAsEmail != null)
            {
                this.AddEntriesToCollection(junkEmailRule.TrustedSenderEmailCollection, "TrustedSenderEmailCollection", mailboxSession.MailboxGuid, this.SendAsEmail);
            }
            junkEmailRule.Save();
        }
示例#2
0
 private void PrepareJunkEmailRule(MailboxJunkEmailConfiguration o, JunkEmailRule rule)
 {
     rule.IsEnabled        = o.Enabled;
     rule.TrustedListsOnly = o.TrustedListsOnly;
     if (o.ContactsTrusted)
     {
         rule.SynchronizeContactsCache();
     }
     else
     {
         rule.ClearContactsCache();
     }
     this.SynchronizeTrustedLists(rule);
     this.SetBlockedList(o, rule);
     this.SetTrustedList(o, rule);
 }
示例#3
0
 private void UpdateJunkEmailContacts()
 {
     if (this.junkEmailUpdates.Count > 0)
     {
         MailboxSession mailboxSession = base.Session as MailboxSession;
         if (mailboxSession != null && mailboxSession.LogonType != LogonType.Delegated && mailboxSession.Capabilities.CanHaveJunkEmailRule && !mailboxSession.MailboxOwner.ObjectId.IsNullOrEmpty())
         {
             JunkEmailRule junkEmailRule = mailboxSession.JunkEmailRule;
             if (junkEmailRule.IsContactsFolderTrusted)
             {
                 try
                 {
                     junkEmailRule.SynchronizeContactsCache();
                     junkEmailRule.Save();
                 }
                 catch (JunkEmailValidationException)
                 {
                 }
                 catch (DataSourceOperationException ex)
                 {
                     throw StorageGlobals.TranslateDirectoryException(ServerStrings.ADException, ex, this, "Contact.UpdateJunkEmailContacts. Failed due to directory exception {0}.", new object[]
                     {
                         ex
                     });
                 }
                 catch (DataSourceTransientException ex2)
                 {
                     throw StorageGlobals.TranslateDirectoryException(ServerStrings.ADException, ex2, this, "Contact.UpdateJunkEmailContacts. Failed due to directory exception {0}.", new object[]
                     {
                         ex2
                     });
                 }
             }
         }
     }
 }