3

Rails 3での認証にdeviseを使用しています。サインイン、サインアウト、サインアップは正常に機能しますが、パスワードを忘れた場合は何も起こりません。パスワードを忘れた場合のリンクをクリックするとhttp://localhost:3000/users/password/newリンクが表示され、メールアドレスを尋ねるフォームが表示され、パスワードのリセット手順を送信するボタンが表示されますが、そのボタンをクリックすると、http://localhost:3000/users/sign_inパスワードのリセットに関するメールが届きません。 .

コンソールでは、次のように表示されます。

Sent mail to nikitasalunkhe.3@gmail.com (968ms)
Date: Tue, 05 Jun 2012 13:14:22 +0530
From: please-change-me-at-config-initializers-devise@example.com
Reply-To: please-change-me-at-config-initializers-devise@example.com
To: nikitasalunkhe.3@gmail.com
Message-ID: <4fcdb8d6de776_dd624e71f0a78a7@user-G41MT-S2.mail>
Subject: Reset password instructions
Mime-Version: 1.0
Content-Type: text/html;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

<p>Hello nikitasalunkhe.3@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:3000/users/password/edit?reset_password_token=gUB8L9nWNikjVJpnhbDW">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>

しかし、受信トレイにメールがありません。

以下は私の config/initializer/devise.rb ファイルのコードです:

Devise.setup do |config| 
config.mailer_sender = "nikitasalunkhe.3@gmail.com"  
config.mailer = "Devise::Mailer" 
require 'devise/orm/active_record' 
config.case_insensitive_keys = [ :email ] 
config.stretches = 10 
config.use_salt_as_remember_token = true 
config.reset_password_keys = [ :email ] 

これは development.rb ファイルのコードです:

Alumnicell::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
    config.action_mailer.default_url_options = { :host => 'localhost:3000' }
end

動作させるにはどのような変更を行う必要がありますか?

4

4 に答える 4

1

この問題を解決する別の方法は、ファイル 「config / initializer/setup_mail.rb」を作成することです。

ActionMailer::Base.smtp_settings = {
    :address              => "smtp.gmail.com",
    :port                 => 587,
    :domain               => "googlemail.com",
    :user_name            => "ayushcshah@gmail.com",
    :password             => "secret_password",
    :authentication       => "plain",
    :enable_starttls_auto => true
}
于 2013-02-14T21:30:23.537 に答える
1

ローカル メーラー デーモンがインストールされていますか? 私の最善の解決策は、次のようにgmail smtpを使用することでした(設定を使用してください):

config/environments/development.rb で:

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

そしてあなたの行を削除してください:

config.action_mailer.default_url_options = { :host => 'localhost:3000' }

本番モードでは、postfix としてローカル メーラー サーバーを使用します。

于 2012-06-05T08:02:07.103 に答える
0

問題を解決しました...次のように私のdevelopment.rbファイルにいくつかの変更を加えました:

require 'tlsmail'    
Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
config.action_mailer.delivery_method = :smtp

 config.action_mailer.smtp_settings = {
:enable_starttls_auto => true,
:address => "smtp.gmail.com",
:port => 587,
:tls                  => true,
:domain             => 'gmail.com', #you can also use google.com
:authentication     => :plain,

:user_name => "nikitasalunkhe.3@gmail.com",
:password => "seceret_password"
}
于 2012-06-06T07:28:48.197 に答える
-2
config.action_mailer.default_url_options = { :host => 'my@gmail.com' }

localhost:3000 の代わりに、あなたの gmail アカウント名を入力してみてください。

于 2012-07-31T05:23:53.150 に答える