From 1087d70182e066d11c708b8eee43fee25ba1bc3f Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 25 Sep 2018 16:58:00 -0700 Subject: Handle all recipients of an email as part of the routing --- lib/action_mailroom/router/route.rb | 9 +++++++-- test/unit/router_test.rb | 11 ++++++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/lib/action_mailroom/router/route.rb b/lib/action_mailroom/router/route.rb index 316c77d711..6d0b922275 100644 --- a/lib/action_mailroom/router/route.rb +++ b/lib/action_mailroom/router/route.rb @@ -10,9 +10,9 @@ class ActionMailroom::Router::Route def match?(inbound_email) case address when String - inbound_email.mail.to.include?(address) + recipients_from(inbound_email.mail).include?(address) when Regexp - inbound_email.mail.to.detect { |recipient| address.match?(recipient) } + recipients_from(inbound_email.mail).detect { |recipient| address.match?(recipient) } when Proc address.call(inbound_email) else @@ -23,4 +23,9 @@ class ActionMailroom::Router::Route def mailbox_class "#{mailbox_name.to_s.capitalize}Mailbox".constantize end + + private + def recipients_from(mail) + Array(mail.to) + Array(mail.cc) + Array(mail.bcc) + end end diff --git a/test/unit/router_test.rb b/test/unit/router_test.rb index 25a2651bb6..75701b669e 100644 --- a/test/unit/router_test.rb +++ b/test/unit/router_test.rb @@ -32,7 +32,16 @@ module ActionMailroom inbound_email = create_inbound_email_from_mail(to: "first@example.com", subject: "This is a reply") @router.route inbound_email assert_equal "FirstMailbox", $processed_by - assert_equal inbound_email.mail, $processed_mail + assert_equal inbound_email.mail, $processed_mail + end + + test "single string routing on cc" do + @router.add_routes("first@example.com" => :first) + + inbound_email = create_inbound_email_from_mail(to: "someone@example.com", cc: "first@example.com", subject: "This is a reply") + @router.route inbound_email + assert_equal "FirstMailbox", $processed_by + assert_equal inbound_email.mail, $processed_mail end test "multiple string routes" do -- cgit v1.2.3