class ActionMailer::MessageDelivery
Класс ActionMailer::MessageDelivery используется ActionMailer::Base при создании нового почтового сообщения. MessageDelivery — это обёртка (подкласс Delegator) вокруг лениво созданного Mail::Message. Вы можете получить прямой доступ к Mail::Message, отправить электронное письмо или запланировать отправку через Active Job.
Notifier.welcome(User.first) # an ActionMailer::MessageDelivery object Notifier.welcome(User.first).deliver_now # sends the email Notifier.welcome(User.first).deliver_later # enqueue email delivery as a job through Active Job Notifier.welcome(User.first).message # a Mail::Message object
Общедоступные методы экземпляров
# File actionmailer/lib/action_mailer/message_delivery.rb, line 67
def deliver_later(options={})
enqueue_delivery :deliver_now, options
end Добавляет электронное письмо в очередь для отправки через Active Job. При запуске задачи письмо будет отправлено с помощью deliver_now.
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)
Параметры:
-
:wait— Добавить электронное письмо в очередь с задержкой -
:wait_until— Добавить электронное письмо в очередь на определённую дату/время -
:queue— Добавить электронное письмо в указанную очередь
# File actionmailer/lib/action_mailer/message_delivery.rb, line 51
def deliver_later!(options={})
enqueue_delivery :deliver_now!, options
end Добавляет электронное письмо в очередь для отправки через Active Job. При запуске задачи письмо будет отправлено с помощью deliver_now!. Это означает, что сообщение будет отправлено, минуя проверку perform_deliveries и raise_delivery_errors, поэтому используйте с осторожностью.
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)
Параметры:
-
:wait— Добавить электронное письмо в очередь с задержкой -
:wait_until— Добавить электронное письмо в очередь на определённую дату/время -
:queue— Добавить электронное письмо в указанную очередь
# File actionmailer/lib/action_mailer/message_delivery.rb, line 84 def deliver_now message.deliver end
Отправляет электронное письмо:
Notifier.welcome(User.first).deliver_now
# File actionmailer/lib/action_mailer/message_delivery.rb, line 76 def deliver_now! message.deliver! end
Отправляет электронное письмо, минуя проверки perform_deliveries и raise_delivery_errors, поэтому используйте с осторожностью.
Notifier.welcome(User.first).deliver_now!
# File actionmailer/lib/action_mailer/message_delivery.rb, line 33 def message __getobj__ end
Возвращает объект Mail::Message
© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.