def read_spam(self): mail_spam = Email.EmailSpamFilter(self._db) for row in mail_spam.list_email_spam_filters_ext(): self.targ2spam[int(row['target_id'])] = [ row['level'], self.spam_act2dig.get(row['code_str'], '0') ]
def _UiO_default_spam_settings(self, email_target): t_id = email_target.entity_id tt_str = str(Email._EmailTargetCode(email_target.email_target_type)) # Set default spam settings if none found on this target esf = Email.EmailSpamFilter(self._db) if tt_str in cereconf.EMAIL_DEFAULT_SPAM_SETTINGS: if not len(cereconf.EMAIL_DEFAULT_SPAM_SETTINGS[tt_str]) == 2: raise Errors.CerebrumError( "Error in cereconf.EMAIL_DEFAULT_SPAM_SETTINGS. " "Expected 'key': ('val', 'val')") l, a = cereconf.EMAIL_DEFAULT_SPAM_SETTINGS[tt_str] lvl = int(Email._EmailSpamLevelCode(l)) act = int(Email._EmailSpamActionCode(a)) try: esf.find(t_id) except Errors.NotFoundError: esf.clear() esf.populate(lvl, act, parent=email_target) esf.write_db()
import cerebrum_path import cereconf from Cerebrum import Errors from Cerebrum.Utils import Factory from Cerebrum.modules import Email db = Factory.get('Database')() db.cl_init(change_program="migrate") co = Factory.get('Constants')(db) all_spam_setting = {} existing_greylist_target_ids = [] et = Email.EmailTarget(db) esf = Email.EmailSpamFilter(db) etf = Email.EmailTargetFilter(db) et.clear() esf.clear() # # we need to move all registered spam_filter where # action == greylist to the new email_target_filter table # # find all email_spam_filter entries where action == greylist for a in esf.list_email_spam_filters_ext(): if 'greylist' in a: existing_greylist_target_ids.append(a[0])