2014-04-01 73 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') 

希望這有助於!

相關問題