diff options
Diffstat (limited to 'app/models/action_mailroom/inbound_email.rb')
-rw-r--r-- | app/models/action_mailroom/inbound_email.rb | 26 |
1 files changed, 3 insertions, 23 deletions
diff --git a/app/models/action_mailroom/inbound_email.rb b/app/models/action_mailroom/inbound_email.rb index 1f086b24bf..cf7370d543 100644 --- a/app/models/action_mailroom/inbound_email.rb +++ b/app/models/action_mailroom/inbound_email.rb @@ -3,28 +3,13 @@ require "mail" class ActionMailroom::InboundEmail < ActiveRecord::Base self.table_name = "action_mailroom_inbound_emails" - include Incineratable, Routable + include Incineratable, MessageId, Routable has_one_attached :raw_email enum status: %i[ pending processing delivered failed bounced ] - before_save :generate_missing_message_id - - class << self - def create_from_raw_email!(raw_email, **options) - create! raw_email: raw_email, message_id: extract_message_id(raw_email), **options - end - - def mail_from_source(source) - Mail.new(Mail::Utilities.binary_unsafe_to_crlf(source.to_s)) - end - - private - def extract_message_id(raw_email) - mail_from_source(raw_email.read).message_id - rescue => e - # FIXME: Add logging with "Couldn't extract Message ID, so will generating a new random ID instead" - end + def self.mail_from_source(source) + Mail.new Mail::Utilities.binary_unsafe_to_crlf(source.to_s) end def mail @@ -34,9 +19,4 @@ class ActionMailroom::InboundEmail < ActiveRecord::Base def source @source ||= raw_email.download end - - private - def generate_missing_message_id - self.message_id ||= Mail::MessageIdField.new.message_id - end end |