在我的Discourse插件中,我正在尝试向用户发送电子邮件。
如果我对自己的API功能进行硬编码,这样做会很好,但是为了公开这个,我试图使用内置的电子邮件。但是,我无法收到要发送的电子邮件。
我试过了:
def self.send_user_email(address)
message = Mail::Message.new(from: "from@fromEmail.com", 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'
因此,如果我在话语中更新line 184 sender.rb以使用#deliver
代替#deliver_now
,我可以尝试发送电子邮件给我发展环境。
答案 0 :(得分:0)
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应用程序&gt; = 5.0将会出现此错误,直到您引用的源代码更新为止。