class WcoEmail::MessageStub

def save_mbox_to_m3 message

# This only saves a local message from mbox to s3.
def save_mbox_to_m3 message
  the_mail = Mail.new(message)
  key      = the_mail.message_id || "no-key-#{Time.now.to_i}.#{rand(1000)}"
  @stub = WcoEmail::MessageStub.create({
    bucket:      ::S3_CREDENTIALS[:bucket_ses],
    object_key:  key,
    status:      WcoEmail::MessageStub::STATUS_PENDING,
    tags:        [ @tag ],
  })
  if @stub.persisted?
    @client.put_object({
      body: message,
      bucket: ::S3_CREDENTIALS[:bucket_ses],
      key: key,
    })
  else
    msg = @stub.errors.full_messages.join(", ")
    puts! msg
    Wco::Log.create({
      message:    "Stub duplicate object_key: #{key}",
      class_name: 'WcoEmail::MessageStub',
      raw_json:   @stub.attributes.to_json,
      tags:       [ @tag ],
    })
  end
end