Movatterモバイル変換


[0]ホーム

URL:


Skip to ContentSkip to Search
Ruby on Rails 8.1.1

Class ActionMailer::MessageDelivery<Delegator

v8.1.1

Action Mailer MessageDelivery

TheActionMailer::MessageDelivery class is used byActionMailer::Base when creating a new mailer.MessageDelivery is a wrapper (Delegator subclass) around a lazy createdMail::Message. You can get direct access to theMail::Message, deliver the email or schedule the email to be sent through Active Job.

Notifier.welcome(User.first)# an ActionMailer::MessageDelivery objectNotifier.welcome(User.first).deliver_now# sends the emailNotifier.welcome(User.first).deliver_later# enqueue email delivery as a job through Active JobNotifier.welcome(User.first).message# a Mail::Message object
Methods
D
M
P

Instance Public methods

deliver_later(options = {})Link

Enqueues the email to be delivered through Active Job. When the job runs it will send the email usingdeliver_now.

Notifier.welcome(User.first).deliver_laterNotifier.welcome(User.first).deliver_later(wait:1.hour)Notifier.welcome(User.first).deliver_later(wait_until:10.hours.from_now)Notifier.welcome(User.first).deliver_later(priority:10)

Options:

  • :wait - Enqueue the email to be delivered with a delay.

  • :wait_until - Enqueue the email to be delivered at (after) a specific date / time.

  • :queue - Enqueue the email on the specified queue.

  • :priority - Enqueues the email with the specified priority

By default, the email will be enqueued using ActionMailer::MailDeliveryJob on the default queue. Mailer classes can customize the queue name used for the default job by assigning adeliver_later_queue_name class variable, or provide a custom job by assigning adelivery_job. When a custom job is used, it controls the queue name.

classAccountRegistrationMailer<ApplicationMailerself.delivery_job =RegistrationDeliveryJobend

Source:show |on GitHub

# File actionmailer/lib/action_mailer/message_delivery.rb, line 136defdeliver_later(options = {})enqueue_delivery:deliver_now,optionsend

deliver_later!(options = {})Link

Enqueues the email to be delivered through Active Job. When the job runs it will send the email usingdeliver_now!. That means that the message will be sent bypassing checkingperform_deliveries andraise_delivery_errors, so use with caution.

Notifier.welcome(User.first).deliver_later!Notifier.welcome(User.first).deliver_later!(wait:1.hour)Notifier.welcome(User.first).deliver_later!(wait_until:10.hours.from_now)Notifier.welcome(User.first).deliver_later!(priority:10)

Options:

  • :wait - Enqueue the email to be delivered with a delay

  • :wait_until - Enqueue the email to be delivered at (after) a specific date / time

  • :queue - Enqueue the email on the specified queue

  • :priority - Enqueues the email with the specified priority

By default, the email will be enqueued using ActionMailer::MailDeliveryJob on the default queue. Mailer classes can customize the queue name used for the default job by assigning adeliver_later_queue_name class variable, or provide a custom job by assigning adelivery_job. When a custom job is used, it controls the queue name.

classAccountRegistrationMailer<ApplicationMailerself.delivery_job =RegistrationDeliveryJobend

Source:show |on GitHub

# File actionmailer/lib/action_mailer/message_delivery.rb, line 109defdeliver_later!(options = {})enqueue_delivery:deliver_now!,optionsend

deliver_now()Link

Delivers an email:

Notifier.welcome(User.first).deliver_now

Source:show |on GitHub

# File actionmailer/lib/action_mailer/message_delivery.rb, line 157defdeliver_nowprocessed_mailer.handle_exceptionsdoprocessed_mailer.run_callbacks(:deliver)domessage.deliverendendend

deliver_now!()Link

Delivers an email without checkingperform_deliveries andraise_delivery_errors, so use with caution.

Notifier.welcome(User.first).deliver_now!

Source:show |on GitHub

# File actionmailer/lib/action_mailer/message_delivery.rb, line 145defdeliver_now!processed_mailer.handle_exceptionsdoprocessed_mailer.run_callbacks(:deliver)domessage.deliver!endendend

message()Link

Returns the resultingMail::Message

Source:show |on GitHub

# File actionmailer/lib/action_mailer/message_delivery.rb, line 75defmessage__getobj__end

processed?()Link

Was the delegate loaded, causing the mailer action to be processed?

Source:show |on GitHub

# File actionmailer/lib/action_mailer/message_delivery.rb, line 80defprocessed?@processed_mailer||@mail_messageend

[8]ページ先頭

©2009-2025 Movatter.jp