【问题标题】:Send email to all users in rails向 Rails 中的所有用户发送电子邮件
【发布时间】:2013-12-03 02:06:37
【问题描述】:

我正在尝试创建一种方法,在调用时向所有用户发送电子邮件。

我的最终目标是通过调度程序调用此方法(我已经让调度程序工作)如果满足某些先决条件,该方法将考虑所有用户并向其中一些用户发送电子邮件。

现在我只想了解如何制作最简单的东西,即向表格中的每个用户发送自定义电子邮件。

我的第一个问题是:

  def send_digest
    @users = User.all
    @users.each do |user|
      @time  = Time.now
      mail(to: user.email, subject: user.name)
    end
  end

此方法(在 app/mailer/user_mailer.rb 中)仅向表中 ID 最大的人发送一封电子邮件。为什么会这样?

另外,我需要做什么才能访问电子邮件中的变量“user.name”?

编辑: 访问邮件正文中的用户变量是否有比 @user = user 更好的方法?

  def send_digest(user)
    @time  = Time.now
    @user = user
    mail(to: user.email, subject: 'mail message')
  end

【问题讨论】:

    标签: ruby-on-rails-3 email


    【解决方案1】:

    每次调用 mailer 方法都会发送一封电子邮件

    在预定的工作人员中

    def calling_method
       @users.each do |user|
         send_digest(user.email, user.name)
       end
    end
    

    在用户邮件中

    def send_digest(user_email, user_name)
       mail(to: user_email, subject: user_name)
    end
    

    【讨论】:

    • 这很好用!现在我如何访问邮件正文中的变量用户(来自 |user|)? (类似于 app/views/user_mailer/send_digest.html.erb)
    • 只传递user 而不是user_nameuser_email 并在send_digest 中读取它
    • 有比使用@user = user 更好的访问方式吗? (我在编辑中写了完整的代码)
    • 我不这么认为。你在做什么是对的。不要忘记接受答案meta.stackexchange.com/a/5235
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 2010-11-01
    • 1970-01-01
    相关资源
    最近更新 更多