EvoBal/app/mailboxes/in_mailbox.rb

23 lines
572 B
Ruby

class InMailbox < ApplicationMailbox
def process
email_importer = EmailImporter.new
repository = EmailRepository.new
rules_evaluator = RulesEvaluator.new
email = email_importer.import(mail)
RuleSet.enabled.each do |rule_set|
if rules_evaluator.evaluate(email, rule_set)
rule_set.actions.enabled.each do |action|
klass = action.class_name.constantize
email = klass.new.process(email)
rescue NameError => ex
# TODO: log a warning
end
end
end
repository.save(email)
end
end