我已成功通过Facebook身份验证设置Devise Confirmable,一切都在开发模式下完美运行。当我推送到heroku并在生产模式下运行时,应用程序会发送一封电子邮件,但链接会将我发送到:
http://localhost:3000/users/confirmation?confirmation_token=E2jH_ehmHwqy2zyvJGcs
如果我用我的应用名称替换localhost:3000一切正常。
在我的config / environments / production.rb文件中,我有以下代码:
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:user_name => ENV["GMAIL_USERNAME"],
:password => ENV["GMAIL_PASSWORD"],
:authentication => :plain,
:enable_starttls_auto => true
}
config.action_mailer.default_url_options = { :host => 'http://myapp.herokuapp.com' }
在我的发展中,我有:
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
config.action_mailer.default_url_options = { :host => 'http://localhost:3000' }
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:user_name => ENV["GMAIL_USERNAME"],
:password => ENV["GMAIL_PASSWORD"],
:authentication => :plain,
:enable_starttls_auto => true
}
有关该怎么做的任何想法?我无法在任何地方找到直接答案。
我正在使用rails 4&设计3.2.4
答案 0 :(得分:1)
试试这个。
config.action_mailer.default_url_options = { host => 'your.herokuapp.com' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: "smtp.gmail.com",
port: 587,
domain: "gmail.com",
Authentication: "plain",
enable_starttls_auto: true,
user_name: your_username,
password: your_password
}
config.action_mailer.perform_deliveries = true
答案 1 :(得分:0)
在production.rb
添加default_url_options
行之前 smtp设置以及host
不应包含http://
,只需编写域名,即,myapp.herokuapp.com
config.action_mailer.default_url_options = { :host => 'myapp.herokuapp.com' }
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:user_name => ENV["GMAIL_USERNAME"],
:password => ENV["GMAIL_PASSWORD"],
:authentication => :plain,
:enable_starttls_auto => true
}
答案 2 :(得分:0)
主机值正在您的应用程序中的某处写入。开始的好地方是初始化程序目录。如其他地方所述,请在初始化程序下检查setup_mail.rb。
转到Rails控制台并检查输出:
ActionMailer::Base.default_url_options[:host]