在我的Discourse插件中,我试图向用户发送电子邮件。
如果我硬编码自己的api功能来实现这一点的话,这就很好了,但是为了公开这一点,我试图使用内置的电子邮件。但是我无法收到电子邮件。
我试过:

def self.send_user_email(address)
  message = Mail::Message.new(from: "[email protected]", to: address, body: "hello")
  Email::Sender.new(message, :admin_login).send # I used admin_login as according to the spec it should send even if email is disabled.
end

但是,当我这样做时,我会得到一个错误:
NoMethodError - undefined method `deliver_now' for #<Mail::Message:0x007fa1bf157300>
Did you mean?  deliver:
  mail (2.6.6) lib/mail/message.rb:1379:in `method_missing'

因此,如果我去更新sender.rb的line 184来使用#deliver而不是#deliver_now,我就能让它尝试在我的开发环境中发送电子邮件。

最佳答案

Rails 4.2不赞成deliver/deliver!,而赞成deliver_now/deliver_now!。(Pull Request
http://guides.rubyonrails.org/4_2_release_notes.html#action-mailer-deprecations
Rails 5.0删除了不推荐的deliverdeliver!方法(commit
http://guides.rubyonrails.org/5_0_release_notes.html#action-mailer-removals
这就是你犯错误的原因。Rails应用程序>=5.0将出现此错误,直到更新您引用的源代码。

关于ruby-on-rails - 话语插件-发送电子邮件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48955969/

10-09 12:53