Rails 5.2 Rake任务不发送邮件程序(尽管内部邮件工作正常)

问题描述 投票:1回答:1

我在lib/tasks/scheduler.rake的rake任务中设置了以下邮件程序:

  desc "Send capsule reminder emails"
  task send_capsule_reminders: :environment do
    require 'time'
    t = Time.now.in_time_zone("Pacific Time (US & Canada)").next_day
    month = t.month
    day = t.day
    Capsule.all.each do |capsule|
      if month == capsule.capsule_date.month && day == capsule.capsule_date.day && capsule.active && capsule.reminder_email
        NewCapsuleReminderMailer.send_capsule_reminder_email(capsule).deliver
      end
    end
  end

我已经从我的控制台测试了NewCapsuleReminderMailer.send_capsule_reminder_email(capsule).deliver,它正确地发送邮件。

我检查了month == capsule.capsule_date.monthday == capsule.capsule_datecapsule.active也是truecapsule.reminder_email也是。

但是,当我运行rake send_capsule_reminders时没有任何反应。

任何人都可以帮我弄清楚为什么这不发送以及如何解决它?

ruby-on-rails rake actionmailer rake-task
1个回答
1
投票

我相信NewCapsuleReminderMailer.send_capsule_reminder_email(capsule).deliver应该是NewCapsuleReminderMailer.send_capsule_reminder_email(capsule).deliver_now

https://guides.rubyonrails.org/action_mailer_basics.html

© www.soinside.com 2019 - 2024. All rights reserved.