设备 - 设置邮件发送器

12

我在一个Rails 3应用程序中使用了Devise。我正试图让Devise和邮件发送器一起工作。目前的情况是,当我输入一个默认的Gmail帐户电子邮件地址时,它会将我重定向回“登录”页面,并给我一个提示:“我很快就会收到说明”,但这些说明并没有被发送。我遇到了一个与RubyForum上发布的某人相同的问题。我阅读了这篇文章,但没有得到任何帮助。我的config/environment/development.rb文件如下:

Project::Application.configure do
  # Settings specified here will take precedence over those in config/application.rb

  # In the development environment your application's code is reloaded on
  # every request.  This slows down response time but is perfect for development
  # since you don't have to restart the webserver when you make code changes.
  config.cache_classes = false

  # Log error messages when you accidentally call methods on nil.
  config.whiny_nils = true

  # Show full error reports and disable caching
  config.consider_all_requests_local       = true
  config.action_view.debug_rjs             = true
  config.action_controller.perform_caching = false

  # Don't care if the mailer can't send
  config.action_mailer.raise_delivery_errors = false

  # Print deprecation notices to the Rails logger
  config.active_support.deprecation = :log

  # Only use best-standards-support built into browsers
  config.action_dispatch.best_standards_support = :builtin

  #SMTP
  config.action_mailer.default_url_options = { :host => 'localhost' }  
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
  :address              => "smtp.gmail.com",
  :port                 => 587,
  :user_name            => 'k0903421@gmail.com',
  :password             => '',
  :authentication       => 'plain',
  :enable_starttls_auto => true  }

end

我有点不明白。

当我被重定向回登录页面时,控制台会显示:

Sent mail to k0903421@gmail.com (30181ms)
Date: Thu, 15 Sep 2011 14:48:06 +0100
From: please-change-me-at-config-initializers-devise@example.com
Reply-To: please-change-me-at-config-initializers-devise@example.com
To: k0903421@gmail.com
Message-ID: <4e720216bf59b_3b215d477ae963de@dj.mail>
Subject: Reset password instructions
Mime-Version: 1.0
Content-Type: text/html;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

<p>Hello k0903421@gmail.com!</p>

<p>Someone has requested a link to change your password, and you can do this through the link below.</p>

<p><a href="http://localhost/users/password/edit?reset_password_token=fqJXk6JbotIxIv3Awq1s">Change my password</a></p>

<p>If you didn't request this, please ignore this email.</p>
<p>Your password won't change until you access the link above and create a new one.</p>
Redirected to http://0.0.0.0:3000/login
Completed 302 Found in 32658ms


Started GET "/login" for 127.0.0.1 at 2011-09-15 14:48:36 +0100
  Processing by Devise::SessionsController#new as HTML
  SQL (0.7ms)  describe `roles_users`
  SQL (0.9ms)  describe `roles_users`
Rendered layouts/_stylesheets.html.erb (0.9ms)
Rendered layouts/_javascripts.html.erb (1.6ms)
Rendered layouts/_header.html.erb (0.8ms)
Rendered layouts/_logo.html.erb (0.7ms)
Rendered layouts/_errors.html.erb (1.8ms)
Rendered devise/sessions/new.html.erb within layouts/application (62.0ms)
Completed 200 OK in 150ms (Views: 68.9ms | ActiveRecord: 1.6ms)

Devise密码控制器

def create
    self.resource = resource_class.send_reset_password_instructions(params[resource_name])

    if successful_and_sane?(resource)
      set_flash_message(:notice, :send_instructions) if is_navigational_format?
      respond_with({}, :location => after_sending_reset_password_instructions_path_for(resource_name))
    else
      respond_with_navigational(resource){ render_with_scope :new }
    end
  end

1
我建议您尽快更改密码(不要在任何地方公开)。开发日志显示了什么? - jschorr
我已经编辑了我的帖子,以展示我在控制台中收到的内容。 - Deej
1
我收到了以下错误信息:Devise::PasswordsController#create中的Timeout::Error执行超时 - Deej
它还给了我这个 app/controllers/devise/passwords_controller.rb:17:in create'`,这意味着我的devise控制器中的创建方法存在问题。 - Deej
让我们在聊天中继续这个讨论:http://chat.stackoverflow.com/rooms/3496/discussion-between-james-schorr-and-djj - jschorr
显示剩余3条评论
1个回答

10

以下是问题:

From: please-change-me-at-config-initializers-devise@example.com
Reply-To: please-change-me-at-config-initializers-devise@example.com

config/initializers/devise.rb文件中更改电子邮件信息。


那我应该将 From: please-change-me-at-config-initializers-devise@example.com 改成我的 Gmail 账户吗? - Deej
1
请记得以生产模式运行服务器,否则电子邮件只会在控制台中显示,而不会实际发送。 - rud
我之前在开发模式下已经让它工作了。不明白为什么现在不能工作。我甚至尝试对Gmail进行ping测试:ping smtp.gmail.com,但连接超时了。 - Deej
2
我成功修复了我的错误。我安装了mailcatcher https://github.com/sj26/mailcatcher 并且是这样做的。 - Deej

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接