【问题标题】:ActionMailer in rails makes every page of app hangRails 中的 ActionMailer 使应用程序的每个页面都挂起
【发布时间】:2014-12-11 19:23:56
【问题描述】:

我正在尝试使用 Rails 3 中内置的 :mail 函数发送邮件,如下所示:

  default from: "Me <me@myname.mailgun.org>"

  def gift
      mail :to => "myname@gmail.com", :subject => "test"
  end

然后我在config/initializers 中有一个名为 setup_mail.rb 的文件:

ActionMailer::Base.smtp_settings = {
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.default_charset = "utf-8"
  config.action_mailer.perform_deliveries = true
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.smtp_settings = {
       :authentication => :plain,
       :address => "smtp.mailgun.org",
       :port => 587,
       :domain => "myname.mailgun.org",
       :user_name => "postmaster@myname.mailgun.org",
       :password => "mypass"
  }
}

我添加了该代码,然后重新启动了我的服务器,但应用程序无限期加载。

【问题讨论】:

  • 如果你改用它是否有效:config.action_mailer.delivery_method = :sendmail 并像这样定义 sendmail 的配置:stackoverflow.com/a/3386332/445131
  • 如果我关注该线程并进行更改,它只会显示“连接被拒绝”。如果我这样做,似乎动作邮件程序甚至都不起作用。

标签: ruby-on-rails actionmailer


【解决方案1】:

您不应该从初始化程序中访问config.action_mailer。删除包装 ActionMailer::Base.smtp_settings 块,只需将所有 config.action_mailer 条目更改为 ActionMailer::Base

ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.default_charset = "utf-8"
ActionMailer::Base.perform_deliveries = true
ActionMailer::Base.raise_delivery_errors = true
ActionMailer::Base.smtp_settings = {
  :authentication => :plain,
  :address => "smtp.mailgun.org",
  :port => 587,
  :domain => "myname.mailgun.org",
  :user_name => "postmaster@myname.mailgun.org",
  :password => "mypass"
}

【讨论】:

  • 完成。重新启动服务器,仍然挂起。如果我删除 setup_mail.rb,应用就会加载。
猜你喜欢
  • 2016-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-05
  • 1970-01-01
  • 2011-10-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多