Sha256: ee4be9dbac5bd4077e2d00b1a3a2148fcff358a69b9a28ea9fb7490bd02193c6

Contents?: true

Size: 1.43 KB

Versions: 19

Compression:

Stored size: 1.43 KB

Contents

module PgEngine
  class BaseMailer < ActionMailer::Base # rubocop:disable Rails/ApplicationMailer
    class MailNotDelivered < StandardError; end

    before_action { @email_object = params[:email_object] }

    default from: lambda { |_mailer|
                    if @email_object.present?
                      email_address_with_name(@email_object.from_address, @email_object.from_name)
                    else
                      email_address_with_name(ENV.fetch('DEFAULT_MAIL_FROM'), ENV.fetch('DEFAULT_MAIL_FROM_NAME'))
                    end
                  },
            reply_to: ->(_mailer) { @email_object.reply_to if @email_object.present? },
            subject: ->(_mailer) { @email_object.subject if @email_object.present? },
            to: ->(_mailer) { @email_object.to if @email_object.present? }

    layout 'pg_layout/mailer'

    # default delivery_method: :smtp

    rescue_from StandardError do |err|
      pg_err err
      # TODO: agregar un backtrace
      @email_object.update_columns(status: :failed, status_detail: err.to_s) if @email_object.present?
    end

    protected

    def mail(*args)
      super(*args).tap do |message|
        # message.mailgun_options = {
        #   'tag' => email.tags,
        #   'tracking-opens' => true
        # }
        message['email_object'] = @email_object if @email_object.present?
      end
    end
  end
end

#   # TODO: testear
#       si from está vacío
#       si body está vacío

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
pg_rails-7.0.8.pre.alpha.110 pg_engine/app/mailers/pg_engine/base_mailer.rb
pg_rails-7.0.8.pre.alpha.109 pg_engine/app/mailers/pg_engine/base_mailer.rb
pg_rails-7.0.8.pre.alpha.108 pg_engine/app/mailers/pg_engine/base_mailer.rb
pg_rails-7.0.8.pre.alpha.107 pg_engine/app/mailers/pg_engine/base_mailer.rb
pg_rails-7.0.8.pre.alpha.106 pg_engine/app/mailers/pg_engine/base_mailer.rb
pg_rails-7.0.8.pre.alpha.105 pg_engine/app/mailers/pg_engine/base_mailer.rb
pg_rails-7.0.8.pre.alpha.104 pg_engine/app/mailers/pg_engine/base_mailer.rb
pg_rails-7.0.8.pre.alpha.103 pg_engine/app/mailers/pg_engine/base_mailer.rb
pg_rails-7.0.8.pre.alpha.102 pg_engine/app/mailers/pg_engine/base_mailer.rb
pg_rails-7.0.8.pre.alpha.101 pg_engine/app/mailers/pg_engine/base_mailer.rb
pg_rails-7.0.8.pre.alpha.100 pg_engine/app/mailers/pg_engine/base_mailer.rb
pg_rails-7.0.8.pre.alpha.99 pg_engine/app/mailers/pg_engine/base_mailer.rb
pg_rails-7.0.8.pre.alpha.98 pg_engine/app/mailers/pg_engine/base_mailer.rb
pg_rails-7.0.8.pre.alpha.97 pg_engine/app/mailers/pg_engine/base_mailer.rb
pg_rails-7.0.8.pre.alpha.96 pg_engine/app/mailers/pg_engine/base_mailer.rb
pg_rails-7.0.8.pre.alpha.95 pg_engine/app/mailers/pg_engine/base_mailer.rb
pg_rails-7.0.8.pre.alpha.94 pg_engine/app/mailers/pg_engine/base_mailer.rb
pg_rails-7.0.8.pre.alpha.93 pg_engine/app/mailers/pg_engine/base_mailer.rb
pg_rails-7.0.8.pre.alpha.92 pg_engine/app/mailers/pg_engine/base_mailer.rb