Rails 4.2邮件程序问题 - 无法使邮件程序正常工作

时间:2015-11-28 21:43:19

标签: ruby-on-rails ruby ruby-on-rails-4

我真的不知道出了什么问题。我有一台RoR服务器,我将定期通过电子邮件向用户发送通知。我现在调用rails代码的方式是:

$ bundle exec rails r "ProjectDueMailer.test_email"

这是邮件代码:

class ProjectDueMailer < ApplicationMailer
  default from: '<email>@gmail.com'

  def test_email
    mail(to: '<email>@gmail.com', subject: "This is a test!")
    puts "email sent"
  end
end

显然用正确的电子邮件替换<email>。同样,配置是:

  config.action_mailer.perform_deliveries = true
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    address: 'smtp.gmail.com',
    port: 587,
    user_name: '<email>@gmail.com',
    password: '<password>',
    authentication: "plain",
    enable_starttls_auto: true }

每当我像这样运行rails runner时,没有任何反应。它坐了一会儿,然后我得到了下一个贝壳线。如果我将def test_email更改为def self.test_email,则会收到以下错误:

undefined method 'mail' for ProjectDueMailer:Class

我真的很茫然。我有test_email.html | text.erb文件,我使用rails g mailer ProjectDueMailer生成邮件程序,因此有ApplicationMailer类。我做错了什么?

1 个答案:

答案 0 :(得分:1)

要发送电子邮件,您应致电deliver_now方法:

ProjectDueMailer.test_mail.deliver_now