简体   繁体   English

带有SMTP的Rails Action Mailer ArgumentError

[英]Rails Action Mailer ArgumentError with SMTP

I am trying to send an email to multiple recipients: 我正在尝试向多个收件人发送电子邮件:

class SubscriberMailer < ApplicationMailer
  default from: "email@gmail.com"
  default to: Subscriber.all.map { |sub| sub.email }

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

in NewslettersController: 在NewslettersController中:

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

I am getting an error: 我收到一个错误:

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.

Thanks for help! 感谢帮助!

Change your default to: : 将您的default to:更改default to: ::

class SubscriberMailer < ApplicationMailer
  default from: "email@gmail.com"
  default to: Subscriber.pluck(:email).join(', ')

  # some code here
end

It isn't about SMTP SMTP无关

Something in your Subscriber.all.map { |sub| sub.email } 您的Subscriber.all.map { |sub| sub.email } Subscriber.all.map { |sub| sub.email } is not working. Subscriber.all.map { |sub| sub.email }不起作用。 Do you use a real, working address? 您使用真实的工作地址吗? If not, try with one. 如果没有,请尝试一个。

And if all emails are real ones, then you may try something like 如果所有电子邮件都是真实的,那么您可以尝试类似

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

Hope it helps! 希望能帮助到你!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM