class ActionMailer::MessageDelivery
def deliver_later!(options = {})
self.delivery_job = RegistrationDeliveryJob
class AccountRegistrationMailer < ApplicationMailer
by assigning a +delivery_job+. When a custom job is used, it controls the queue name.
job by assigning a +deliver_later_queue_name+ class variable, or provide a custom job
the default queue. Mailer classes can customize the queue name used for the default
By default, the email will be enqueued using ActionMailer::MailDeliveryJob on
* :priority - Enqueues the email with the specified priority
* :queue - Enqueue the email on the specified queue
* :wait_until - Enqueue the email to be delivered at (after) a specific date / time
* :wait - Enqueue the email to be delivered with a delay
Options:
Notifier.welcome(User.first).deliver_later!(priority: 10)
Notifier.welcome(User.first).deliver_later!(wait_until: 10.hours.from_now)
Notifier.welcome(User.first).deliver_later!(wait: 1.hour)
Notifier.welcome(User.first).deliver_later!
and +raise_delivery_errors+, so use with caution.
that the message will be sent bypassing checking +perform_deliveries+
job runs it will send the email using +deliver_now!+. That means
Enqueues the email to be delivered through Active Job. When the
def deliver_later!(options = {}) enqueue_delivery :deliver_now!, options end