Sha256: 7802a49adff7d3f804807fb847b0623bb698cf9d7c2727504583bf21ad4fd6ab
Contents?: true
Size: 1.03 KB
Versions: 1
Compression:
Stored size: 1.03 KB
Contents
module MList class Server attr_reader :list_manager, :email_server def initialize(config) @list_manager = config[:list_manager] @email_server = config[:email_server] @email_server.receiver(self) end def receive_email(email) lists = list_manager.lists(email) if email.bounce? process_bounce(lists.first, email) else process_post(lists, email) end end def mail_list(list) MailList.find_or_create_by_list(list, @email_server) end protected def process_bounce(list, email) list.bounce(email) end def process_post(lists, email) lists.each do |list| next if email.been_here?(list) if list.subscriber?(email.from_address) if list.active? mail_list(list).process_email(email) else list.inactive_post(email) end else list.non_subscriber_post(email) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
aiwilliams-mlist-0.1.0 | lib/mlist/server.rb |