2014-04-01 75 views
0
class UserMailer < ActionMailer::Base 
    default from: '[email protected]' 

    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审计管理”)发送邮件给所有用户

回答

7

可以传递的数组地址以及:

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 
+0

@BroiState,第二种方法也比较合理。 OP最好使用延迟作业批量发送电子邮件。 +1给你。 –

+2

是的,发送电子邮件X次比发送一封电子邮件给X用户更好。理论上你可以对后者使用密件抄送,但你更可能触发垃圾邮件过滤器。再加上密件抄送电子邮件是非常不专业的。 –

0

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

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

希望这有助于!

相关问题