已经解决,host 的地址写错了,应该是
host = "note-book-diary.herokuapp.com"
使用了 devise 中的 confirmable 模块,部署到了 heroku 中,邮件采用 heroku 中 sendgrid,具体的配置信息如下:
#config/environments/production.rb
config.force_ssl = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
host = "note-book-diary.heroku.com"
config.action_mailer.default_url_options = { protocol: "https", host: host }
ActionMailer::Base.smtp_settings = {
address: "smtp.sendgrid.net",
port: 587,
authentication: "plain",
user_name: "xx",
password: "xx",
domain: "heroku.com",
enable_starttls_auto: true
}
访问https://note-book-diary.heroku.com/的时候不会出现任何问题,包括注册和登录页面,注册之后能收到邮件,但是邮件中的确认链接点击之后显示如下错误
NET::ERR_CERT_COMMON_NAME_INVALID
指出我的链接不是私密链接,网站使用的是 HSTS,我试着关闭 HSTS,出现也是同样的问题,chrome 和 safari 中都是返回这个结果。
config.ssl_options = { hsts: false }