在我的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删除了不推荐的deliver
和deliver!
方法(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/