我想写个程序给所有用户发个邮件。 开始测试了下邮件发送。
#encoding: utf-8
class UserMailer < ActionMailer::Base
default from: "[email protected]"
def test_email
mail(:to => "[email protected]", :subject => "rails邮件发送测试")
end
然后 rails c 里面直接 UserMailer.test_email.deliver 测试 ok。可以收到邮件
然后打算遍历 User 表发送
def send_all
User.all.each do |u|
@user = u
mail(:to => @user.mail, :subject => "rails程序测试")
end
end
目前为了测试,就 2 个用户。但是这样再调用 send_all.deliver 结果就最后用户可以收到,前面的用户就收不到了。不知道什么原因
因为单位打算用来作为成绩通知用,就 100 多用户,单位自己的邮件服务器。所以不存在垃圾邮件问题。难道不能这样循环发送吗?我想的是如果这样可以,再加上 delay_job 就可以后台延时发送了。