2015-12-02 52 views
1

我試圖發送電子郵件給多個收件人:Rails應用梅勒引發ArgumentError與SMTP

class SubscriberMailer < ApplicationMailer 
    default from: "[email protected]" 
    default to: Subscriber.all.map { |sub| sub.email } 

    def newsletter(subscriber) 
    @subscriber = subscriber 
    mail subject: "New newsletter" 
    end 
end 

在NewslettersController:

def send(newsletter) 
    @subscribers = Subscriber.all 
    SubscriberMailer.newsletter(@subscribers).deliver 
end 

我得到一個錯誤:

ArgumentError in NewslettersController#index 
An SMTP To address is required to send a message. Set the message smtp_envelope_to, to, cc, or bcc address. 

感謝幫助!

+1

'到' 選項需要一個逗號分隔的列表,請嘗試這SubscriberMailer,Subscriber.all.map {|分| 「#{sub.email},」} – Saqib

+0

這有助於:默認爲:Subscriber.all.collect(&:email).join(「,」)。非常感謝您的幫助:) –

回答

0

這是不是在你的Subscriber.all.map { |sub| sub.email }SMTP

東西是不工作的。你使用真實的工作地址嗎?如果沒有,請嘗試一個。

如果所有的電子郵件是以假亂真,那麼你可能會嘗試像

default to: Subscriber.all.collect(&:email).join(",") 

希望它能幫助!

1

更改default to:

class SubscriberMailer < ApplicationMailer 
    default from: "[email protected]" 
    default to: Subscriber.pluck(:email).join(', ') 

    # some code here 
end