aboutsummaryrefslogblamecommitdiffstats
path: root/app/models/action_mailroom/inbound_email.rb
blob: 92f80f26e3e5540825ce123052bdf239bc5a9916 (plain) (tree)
1
2
3
4
5
6
7
8
9

              
                                                       
                                                    
 
                             


                                                                
                                                                          

 
          
                                                                                 



                                 
                                                                         

       
require "mail"

class ActionMailroom::InboundEmail < ActiveRecord::Base
  self.table_name = "action_mailroom_inbound_emails"

  has_one_attached :raw_email

  enum status: %i[ pending processing delivered failed bounced ]

  after_create_commit :deliver_to_mailroom_later, if: ->(r) { r.pending? }


  def mail
    @mail ||= Mail.new(Mail::Utilities.binary_unsafe_to_crlf(raw_email.download))
  end

  private
    def deliver_to_mailroom_later
      ActionMailroom::DeliverInboundEmailToMailroomJob.perform_later self
    end
end