Rails4:无法从lib /模块发送电子邮件

时间:2016-02-03 17:10:33

标签: ruby-on-rails actionmailer

我在rails4 app中发生了这个奇怪的事情:

我在event.rb文件夹中创建了lib

在那里,我打电话给邮件:

def whatever
  puts 'here'
  UserMailer.welcome(user)
  puts 'there'
end

正在调用

class UserMailer < ActionMailer::Base
  def welcome(user)
    @user = user
    mail(to: @user.mailer, subject: 'Welcome to my app').deliver
  end
end

奇怪的是,方法welcome从未被调用,而whatever被调用,而不会引发任何错误(日志就在那里)。

但如果我在控制台中调用UserMailer.welcome(User.first),则会发送它。

我做错了什么?是否无法从模块发送电子邮件?我应该将此代码移动到模型中?那会很奇怪。

提前致谢

1 个答案:

答案 0 :(得分:0)

IMO邮件应该如下所示:

Login

并且应该以这种方式调用:

class UserMailer < ActionMailer::Base
  def welcome(user)
    @user = user
    mail(to: @user.mailer, subject: 'Welcome to my app') #.deliver removed
  end
end