Method: ActionMailer::MailDeliveryJob#perform

Defined in:
actionmailer/lib/action_mailer/mail_delivery_job.rb

#perform(mailer, mail_method, delivery_method, args:, kwargs: nil, params: nil) ⇒ Object



21
22
23
24
25
26
27
28
29
# File 'actionmailer/lib/action_mailer/mail_delivery_job.rb', line 21

def perform(mailer, mail_method, delivery_method, args:, kwargs: nil, params: nil)
  mailer_class = params ? mailer.constantize.with(params) : mailer.constantize
  message = if kwargs
    mailer_class.public_send(mail_method, *args, **kwargs)
  else
    mailer_class.public_send(mail_method, *args)
  end
  message.send(delivery_method)
end