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