Fix: Find mailbox with cc email (#4372)
This commit is contained in:
@@ -21,17 +21,20 @@ class ApplicationMailbox < ActionMailbox::Base
|
||||
def self.support_mail?
|
||||
proc do |inbound_mail_obj|
|
||||
is_a_support_email = false
|
||||
inbound_mail_obj.mail.to&.each do |email|
|
||||
channel = Channel::Email.find_by('lower(email) = ? OR lower(forward_to_email) = ?', email.downcase, email.downcase)
|
||||
if channel.present?
|
||||
is_a_support_email = true
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
is_a_support_email = true if reply_to_mail?(inbound_mail_obj, is_a_support_email)
|
||||
|
||||
is_a_support_email
|
||||
end
|
||||
end
|
||||
|
||||
def self.reply_to_mail?(inbound_mail_obj, is_a_support_email)
|
||||
return if is_a_support_email
|
||||
|
||||
channel = EmailChannelFinder.new(inbound_mail_obj.mail).perform
|
||||
channel.present?
|
||||
end
|
||||
|
||||
def self.catch_all_mail?
|
||||
proc { |_mail| true }
|
||||
end
|
||||
|
||||
@@ -2,6 +2,8 @@ module MailboxHelper
|
||||
private
|
||||
|
||||
def create_message
|
||||
return if @conversation.messages.find_by(source_id: processed_mail.message_id).present?
|
||||
|
||||
@message = @conversation.messages.create(
|
||||
account_id: @conversation.account_id,
|
||||
sender: @conversation.contact,
|
||||
|
||||
@@ -21,15 +21,17 @@ class SupportMailbox < ApplicationMailbox
|
||||
private
|
||||
|
||||
def find_channel
|
||||
mail.to.each do |email|
|
||||
@channel = Channel::Email.find_by('lower(email) = ? OR lower(forward_to_email) = ?', email.downcase, email.downcase)
|
||||
break if @channel.present?
|
||||
end
|
||||
find_channel_with_to_mail if @channel.blank?
|
||||
|
||||
raise 'Email channel/inbox not found' if @channel.nil?
|
||||
|
||||
@channel
|
||||
end
|
||||
|
||||
def find_channel_with_to_mail
|
||||
@channel = EmailChannelFinder.new(mail).perform
|
||||
end
|
||||
|
||||
def load_account
|
||||
@account = @channel.account
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user