Rails应用梅勒引发ArgumentError与SMTP
问题描述:
我试图发送电子邮件给多个收件人: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.
感谢帮助!
答
这是不是在你的Subscriber.all.map { |sub| sub.email }
约SMTP
东西是不工作的。你使用真实的工作地址吗?如果没有,请尝试一个。
如果所有的电子邮件是以假乱真,那么你可能会尝试像
default to: Subscriber.all.collect(&:email).join(",")
希望它能帮助!
答
更改default to:
:
class SubscriberMailer < ApplicationMailer
default from: "[email protected]"
default to: Subscriber.pluck(:email).join(', ')
# some code here
end
'到' 选项需要一个逗号分隔的列表,请尝试这SubscriberMailer,Subscriber.all.map {|分| “#{sub.email},”} – Saqib
这有助于:默认为:Subscriber.all.collect(&:email).join(“,”)。非常感谢您的帮助:) –