【问题标题】:Getting Devise authentication to send the email for password retrieval获取 Devise 身份验证以发送电子邮件以检索密码
【发布时间】:2012-01-13 18:32:41
【问题描述】:

我正在本地主机上测试 Rails 的 Devise 身份验证,并希望让它发送电子邮件以检索密码(即“忘记密码”链接)。密码检索内置于设计中,只需正确配置它以获取要发送的电子邮件。

在initializers/devise.rb中,我放了

config.mailer_sender = "i...@mydomain.com" 

但是当我尝试测试有关 Rails 的 Devise 身份验证的“忘记密码”链接时,我收到了以下错误消息。如果我确实需要添加其他信息以使电子邮件实际发送,我需要添加什么以及在哪里添加?

在用户模型中,这些是正在使用的模块 设计:database_authenticable,:可注册, :recoverable, :rememberable, :trackable, :validatable

--- 错误信息 --- 设计中的 Errno::ECONNREFUSED::PasswordsController#create 连接被拒绝 - 连接(2) Rails.root:/Users/myname/Sites/rails3d 应用程序跟踪 |框架跟踪 |全跟踪 要求 参数: {"utf8"=>"✓", "authenticity_token"=>"8oO5vXqO4esl3ztn5yE7OkVxZe+Ju94jj76rbKR225I=", "user"=>{"email"=>"myemail...@gmail.com"}, "commit"=>"向我发送重置密码说明"} 显示会话转储 显示环境转储 回复 标题

【问题讨论】:

  • 我最终在同一个地方。此功能的文档记录确实很差。

标签: ruby-on-rails


【解决方案1】:

您是否在environments/development.rb 中设置了您的邮件设置

  config.action_mailer.smtp_settings = {
     :address              => "smtp.gmail.com",
     :port                 => 587,
     :domain               => 'domain.com',
     :user_name            => 'email_address@domain.com',
     :password             => 'password',
     :authentication       => :plain,
     :enable_starttls_auto => true  }

【讨论】:

  • 其他人都说域是邮件服务器的域,而不是 Web 域。 ?
【解决方案2】:

除了 TJ 上面所说的之外,我建议您查看 MailCatcher gem 以在本地测试电子邮件。我已经用了几天了,效果很好。

mailcatcher.me

此外,如果您希望发送电子邮件而不仅仅是记录,请确保并在您的 development.rb 文件中启用发送:

  config.action_mailer.perform_deliveries = true

【讨论】:

    猜你喜欢
    • 2023-02-26
    • 2016-11-27
    • 2019-07-13
    • 1970-01-01
    • 2021-11-21
    • 2020-02-27
    • 2021-08-13
    • 2016-10-13
    • 2018-11-11
    相关资源
    最近更新 更多