感谢您查看此内容。
Heroku不允许直接从应用程序运行cron任务;你必须使用他们的调度程序来设置cron作业。我写的工作在开发中工作得很好,但我的用户都没有收到生产中的电子邮件。
我的邮件代码:
class PostsMailer < ActionMailer::Base
default from: "christopher@scratchitoff.co"
def daily_email(user)
@user= user
@posts = user.posts
@url = "http://scratchitoff.co/lists"
mail(to:@user.email, subject: 'Your active to-do items')
end
端
我对邮件的看法:
<h2>Hello <%= @user.name %></h2>
Your active to-do Items:
<ul>
<% @posts.each do |post| %>
<li><%= post.title %></li>
<% end %>
</ul>
-sincerely, Christopher
我的佣金任务由调度程序运行:
namespace :notifications do
desc " Daily posts email to users"
task :daily_post_email => :environment do
users = User.all
users.each do |user|
PostsMailer.daily_email(user)
end
end
end
有什么明显的东西我不见了吗?
答案 0 :(得分:-1)
是的,我认为你忘记了有效载荷 - 试试:PostsMailer.daily_email(user).deliver
答案 1 :(得分:-1)
有几种方法可以做到这一点: - Cronjob - 在rails config中做一些作弊,在config目录下创建schedule.rb文件。然后添加以下行:
every 1.day do
runner "User.send_mail"
end
你可以看到。您需要在User模型中定义send_mail方法。这只是一个例子。希望对你有所帮助。