【问题标题】:Rails 4.2 Mailer Problems - Can't get mailer to workRails 4.2 邮件程序问题 - 无法让邮件程序工作
【发布时间】:2015-11-28 21:43:18
【问题描述】:

我真的不知道出了什么问题。我有一个 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

显然将&lt;email&gt; 替换为正确的电子邮件。同样的配置是:

  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 时,什么都没有发生。它坐了一会儿,然后我得到下一个 shell 行。如果我将def test_email 更改为def self.test_email,则会收到以下错误:

undefined method 'mail' for ProjectDueMailer:Class

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

【问题讨论】:

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


    【解决方案1】:

    要发送邮件,你应该调用deliver_now方法:

    ProjectDueMailer.test_mail.deliver_now
    

    【讨论】:

    • 就是这样!立即发货!现在我有 SMTP 身份验证问题,但这完全是另一个问题!谢谢先生。
    猜你喜欢
    • 2020-05-14
    • 2013-07-15
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多