У меня есть то, что я считаю рабочей настройкой для отправки электронной почты через Delayed_Job
. Тем не менее, я не получил свое тестовое электронное письмо, и не стоит ждать, пока произойдет еще больше с задержкой дней. Мне нужно выяснить:Отправка электронной почты с Delayed_Job
- Что не так, что сообщение электронной почты не отправлено.
- Как протестировать его без ожидания дней за раз.
Я новичок в Delayed_Job
, поэтому прощайте ошибки новичка.
Вот модель, которая включает в себя метод send_reminder_emails
. Они были полностью функциональны без .delay(run_at: self.mail_date)
бита, так по крайней мере, я знаю, что много работает:
class Reminder < ActiveRecord::Base
belongs_to :user
before_save :create_mail_date
after_save :send_reminder_emails
extend FriendlyId
friendly_id :name, use: [:slugged, :finders]
def create_mail_date
@schedule = IceCube::Schedule.new(self.date)
case self.repeating
when "Weekly"
@schedule.add_recurrence_rule(
IceCube::Rule.weekly
)
when "Monthly"
@schedule.add_recurrence_rule(
IceCube::Rule.monthly.day_of_month(self.date.mon)
)
when "Yearly"
@schedule.add_recurrence_rule(
IceCube::Rule.yearly.day_of_year(self.date.yday)
)
end
if self.repeating
self.date = @schedule.next_occurrence(Time.now)
end
self.mail_date = self.date - 7.days
end
private
def send_reminder_emails
if self.reminder
ReminderMailer.delay(run_at: self.mail_date).reminder_send(self.user, self).deliver_now
self.create_mail_date
end
end
handle_asynchronously :send_reminder_emails
end
ссылки на schedule
находятся через Ice_Cube
драгоценный камень, и все даты материала было проверено с помощью моей консоли и работают. Вот мой reminder_mailer.rb
:
class ReminderMailer < ApplicationMailer
default from: "[email protected]"
def reminder_send(user, reminder)
@user = user
@reminder = reminder
mail(to: user.email, subject: "Reminder! #{reminder.name} is fast approaching!")
end
end
Я установил Delayed_Job
шаг за шагом от их риого для Rails 4. Любой помощи получает отложенную часть этой почтовой программы сглажена ценится!
Что вы получаете, когда запускаете 'Delayed :: Job.all' в консоли rails. – dnsh
@Dinesh, я получаю 'NameError: uninitialized constant Delayed от (pry): 12: in' __pry __ ''Я чувствую, что это плохой знак. – Liz
Есть ли git repo для этого? –