Deliver_later 不适用于旧网站

问题描述 投票:0回答:1

我正在处理的旧网站给了我一个新错误。这是 Rails 5.1.0.rc2。

网站在其他邮件程序操作中使用以下类似的编码,从而出现此错误:

Error performing ActionMailer::DeliveryJob (Job ID: 03897c07-3397-4b37-8c62-cfcf12dd1905) from Async(mailers) in 244.32ms: NoMethodError (undefined method `deliver_later' for #<Mail::Message:0x007fe7e5c9d9c8>
Did you mean?  delivery_handler):
/home/dave/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/mail-2.7.0/lib/mail/message.rb:1396:in `method_missing'

控制器:

UserMailer.hpe_new_vehicle_applicant(@dealer,@vehicle,@user).deliver_later

用户邮件程序:

def hpe_new_vehicle_applicant(dealer,vehicle,user)
    @dealer = dealer
    @vehicle = vehicle
    @user = user

    account_emails = @dealer.sales_persons.where.not(confirmed_at: nil).pluck(:email)
    subject = "no reply - New Vehicle Applicant (#{@dealer.dealer_name})"

    account_emails.each do |email|
      send_user_mail(email, subject).deliver_later
    end

  end

我认为代码以前有效,但我不确定。除了更新 bcrypt gem 之外,也没有进行任何更改。 ...我也不明白为什么使用 send_user_mail 。谷歌搜索时没有显示真实结果

ruby-on-rails actionmailer
1个回答
0
投票

您能否评论一下 send_user_mail 中的内容,我假设 hpe_new_vehicle_applicant 是邮件程序内部的一个方法,我们不会在邮件程序方法中调用 Deliver_later,下面粘贴我们如何编写代码发送邮件的示例片段

邮件(收件人:电子邮件,主题:“Hello World”)

© www.soinside.com 2019 - 2024. All rights reserved.