2015-12-02 100 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