【问题标题】:Send mail to all users向所有用户发送邮件
【发布时间】:2014-05-12 05:53:58
【问题描述】:
    class UserMailer < ActionMailer::Base
  default from: 'nixers@fixrnix.in'

  def welcome_email(user)
    @user = user
    @url  = 'http://www.fixrnix.in'
    mail(to: @user.email , subject: 'Welcome to FixNix Audit Management')
  end
end

如何向所有用户而不是单个用户发送电子邮件邮件(收件人:@user.email,主题:'欢迎使用 FixNix 审计管理')

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 actionmailer


    【解决方案1】:

    您也可以传递地址数组:

    def welcome_email(users)
      @url  = 'http://www.fixrnix.in'
      mail(to: users.pluck[:email] , subject: 'Welcome to FixNix Audit Management')
    end
    

    但是,如果您的电子邮件正文取决于用户,或者您不希望邮寄的用户看到其他用户的地址,则不能这样做。您需要为每个用户创建一条新消息并单独发送。

    users.each do |user|
      YourMailer.welcome_email(user).deliver
    end
    

    【讨论】:

    • @BroiState,第二种方法更好也更合理。并且 OP 最好使用 Delayed Job 来批量发送电子邮件。 +1 给你。
    • 是的,发送电子邮件 X 次肯定比发送一封电子邮件给 X 个用户更好。从理论上讲,您可以将 bcc 用于后者,但您更有可能触发垃圾邮件过滤器。加上密件抄送电子邮件非常不专业。
    【解决方案2】:

    你可以在你的邮件中简单地做到这一点

    emails = users.collect(&:email).join(", ")
    mail(to: emails, subject: 'Welcome to FixNix Audit Management')
    

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-23
      • 2013-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-11
      • 2010-11-01
      • 1970-01-01
      相关资源
      最近更新 更多