缺少主机链接!请提供:host参数,

时间:2013-11-28 16:54:28

标签: ruby-on-rails heroku actionmailer

我知道这个问题有一千次。但我觉得很奇怪: - )

我正在使用heroku。我想通过SMTP邮寄。我发送电子邮件的正确设置是什么?

请记住,我的MailService类似于“gmail”或“gmx”而不是我的主机superapp.herokuapp.com

我的application.rb:

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
    from: ENV['MAIL_SENDER_EMAIL_ADDRESS'],
    address: ENV['MAIL_SENDER_SERVER_HOST'],
    authentication: :login,
    enable_starttls_auto: ENV['MAIL_SENDER_TLS'],
    user_name: ENV['MAIL_SENDER_USERNAME'],
    password: ENV['MAIL_SENDER_PASSWORD']}
config.action_mailer.default = {
    :charset => "utf-8",
    from: ENV['MAIL_SENDER_EMAIL']}
config.action_mailer.raise_delivery_errors = false
config.action_mailer.perform_deliveries = true

在我的production.rb

config.action_mailer.default_url_options = {host: ENV['RAILS_HOST']}
config.action_mailer.raise_delivery_errors = false
config.action_mailer.perform_deliveries = true

摆脱错误的正确配置是什么?

ActionView::Template::Error (Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true)

ENV['RAILS_HOST'] = "superapp.herokuapp.com"不起作用

1 个答案:

答案 0 :(得分:0)

将它作为ENV变量加载导致它为我抛出错误并让我在过去的几个小时里感到困惑。

最后,我为每个环境文件添加了以下正确的值:

test.rb / development.rb / production.rb

设计3.2.x

Rails 4.1.x

感谢maudulus

# Default Mailer Host
  Rails.application.routes.default_url_options[:host] = 'domain.com'