我知道这个问题有一千次。但我觉得很奇怪: - )
我正在使用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"
不起作用
答案 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'