[英]ActiveMailer Email Not Sending from Rake Task
我有一堆應該從 rake 任務中發送的電子郵件。
這是整個send_notifications.rake
文件:
desc "Send today's notifications."
task send_notifications: :environment do
require 'time'
puts 7.days.from_now
phases = TeamProjectPhase.all
phases.each do |phase|
if phase.ends == 7.days.from_now && !phase.admin_confirmed
TeamMailer.due_date_approaching(phase).deliver
end
end
phases = TeamProjectPhase.all
phases.each do |phase|
if phase.ends.today? && !phase.admin_confirmed
TeamMailer.due_date_here(phase).deliver
end
end
phases = TeamProjectPhase.all
phases.each do |phase|
if phase.ends.today? && !phase.admin_confirmed
TeamMailer.due_date_missed_admin(phase).deliver
end
end
tasks = TeamTask.all
tasks.each do |task|
if task.due == 7.days.from_now && !task.admin_confirmed
TeamMailer.task_due_date_approaching(task).deliver
end
end
tasks = TeamTask.all
tasks.each do |task|
if task.due.today? && !task.admin_confirmed
TeamMailer.task_due_date_here(task).deliver
end
end
tasks = TeamTask.all
tasks.each do |task|
if task.due.today? && !task.admin_confirmed
TeamMailer.task_due_date_missed_admin(task).deliver
end
end
end
我已經使用puts
來確定當我run rake send_notifications
時,它會到達正確的 if 語句中以執行正確的任務和/或階段。
不幸的是,沒有任何電子郵件正在發送! 我試過用deliver
和deliver_now
結束它們。
誰能看到我做錯了什么?
一些代碼清理,所以你不會循環超過你需要的:
desc "Send today's notifications."
task send_notifications: :environment do
require 'time'
puts 7.days.from_now
TeamProjectPhase.all.each do |phase|
return unless phase.admin_confirmed
TeamMailer.due_date_approaching(phase).deliver if phase.ends == 7.days.from_now
if phase.ends.today?
TeamMailer.due_date_here(phase).deliver
TeamMailer.due_date_missed_admin(phase).deliver
end
end
TeamTask.all.each do |task|
return unless task.admin_confirmed
TeamMailer.task_due_date_approaching(task).deliver if task.due == 7.days.from_now
if task.due.today?
TeamMailer.task_due_date_here(task).deliver
TeamMailer.task_due_date_missed_admin(task).deliver
end
end
end
如果TeamMailer
未發送,但其他郵件發送,我會將TeamMailer
與工作郵件進行比較,以查看我可能忘記設置的內容(例如default from: "from@example.com"
或layout 'mailer'
)
如果TeamMailer
在其他情況下發送,但不是從rake
任務發送,我會使用調試器來檢查:
ActionMailer
隊列以查看 email 是否排隊發送ActionMailer
配置以確保perform_deliveries
類的內容仍然true
:environment
設置和我的環境文件,以確保我沒有覆蓋某些東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.