每当 gem 未发送电子邮件时
Whenever gem is not sending an email
如果用户在 48 小时内未激活,我想向他们重新发送激活电子邮件。我在 gem 时使用过,但它没有发送电子邮件。即使 action mailer 工作正常并在用户注册时发送电子邮件
schedule.rb
set :environment, :development
every 1.minutes do
runner "user.resend_account_activation"
end
user_mailer.rb
def resend_account_activation
@user = User.where('activated = ?',false && 'activated_at < ?',48.hours.ago)
mail to: @user.email, subject: "You forgot to activate"
end
user.rb
def resend_account_activation
# @outdated_users = User.where('activated_at < ?',30.seconds.ago)
UserMailer.resend_account_activation.deliver_now!
end
在我的命令中
# Begin Whenever generated tasks for: store
* * * * * /bin/bash -l -c 'cd /mnt/c/Sites/testApp && bin/rails runner -e production '\''user.resend_account_activation'\'''
# End Whenever generated tasks for: store
我觉得不应该user.resend_account_activation
会是这样的
user.rb
def self.resend_account_activation_to_users
User.where('activated = ? AND activated_at < ?', false ,48.hours.ago).each do |user|
UserMailer.resend_account_activation(user.id).deliver_now!
end
end
注意:我已经更改了 48 小时查询。请在执行前检查
user_mailer.rb
def resend_account_activation(user_id)
@user = User.find(user_id)
mail to: @user.email, subject: "You forgot to activate"
end
runner "User.resend_account_activation" # Note: changed user => User
如果用户在 48 小时内未激活,我想向他们重新发送激活电子邮件。我在 gem 时使用过,但它没有发送电子邮件。即使 action mailer 工作正常并在用户注册时发送电子邮件 schedule.rb
set :environment, :development
every 1.minutes do
runner "user.resend_account_activation"
end
user_mailer.rb
def resend_account_activation
@user = User.where('activated = ?',false && 'activated_at < ?',48.hours.ago)
mail to: @user.email, subject: "You forgot to activate"
end
user.rb
def resend_account_activation
# @outdated_users = User.where('activated_at < ?',30.seconds.ago)
UserMailer.resend_account_activation.deliver_now!
end
在我的命令中
# Begin Whenever generated tasks for: store
* * * * * /bin/bash -l -c 'cd /mnt/c/Sites/testApp && bin/rails runner -e production '\''user.resend_account_activation'\'''
# End Whenever generated tasks for: store
我觉得不应该user.resend_account_activation
会是这样的
user.rb
def self.resend_account_activation_to_users
User.where('activated = ? AND activated_at < ?', false ,48.hours.ago).each do |user|
UserMailer.resend_account_activation(user.id).deliver_now!
end
end
注意:我已经更改了 48 小时查询。请在执行前检查
user_mailer.rb
def resend_account_activation(user_id)
@user = User.find(user_id)
mail to: @user.email, subject: "You forgot to activate"
end
runner "User.resend_account_activation" # Note: changed user => User