2013-04-29 4 views
1

Rails 3.2.13, Ruby 1.9.3Сброс пароля по электронной почте не отправляется по завещанию

Мой контроллер Разрабатывают работает нормально отправка электронной почты, с одним исключением: отправка по электронной почте инструкции по смене пароля.

Когда я нахожу "Забыли пароль?" link, я получаю сообщение:

You will receive an email with your password reset instructions in a few minutes. 

Но, я не получаю электронное письмо. Ниже приведена соответствующая дампа из файла журнала:

Started GET "/password/new.user" for 174.xx.xxx.xx at 2013-04-29 01:28:48 +0000 
Processing by Devise::PasswordsController#new as 
    BlogPost Load (0.5ms) SELECT `blog_posts`.* FROM `blog_posts` 
    Rendered devise/_links.erb (1.0ms) 
    Rendered devise/passwords/new.html.erb within layouts/application (23.1ms) 
    Rendered layouts/_shim.html.erb (0.0ms) 
    Rendered layouts/_header.html.erb (2.5ms) 
    Rendered layouts/_promo_bar.html.erb (0.9ms) 
    Rendered layouts/_footer.html.erb (2.6ms) 
Completed 200 OK in 54ms (Views: 51.2ms | ActiveRecord: 0.5ms) 
Started POST "/password" for 174.xx.xxx.xx at 2013-04-29 01:30:19 +0000 
Processing by Devise::PasswordsController#create as HTML 
    Parameters: {"utf8"=>"✓", "user"=>{"email"=>"[email protected]"}, "commit"=>"Send me reset password instructions"} 
    BlogPost Load (137.8ms) SELECT `blog_posts`.* FROM `blog_posts` 
    User Load (82.4ms) SELECT `users`.* FROM `users` WHERE `users`.`email` = '[email protected]' LIMIT 1 
    User Load (14.8ms) SELECT `users`.* FROM `users` WHERE `users`.`reset_password_token` = 'NysDaribCpgNySc5Nmog' LIMIT 1 
    (0.2ms) BEGIN 
    (99.0ms) UPDATE `users` SET `reset_password_token` = 'NysDaribCpgNySc5Nmog', `reset_password_sent_at` = '2013-04-29 01:30:19', `updated_at` = '2013-04-29 01:30:19' WHERE `users`.`id` = 113 
    (60.6ms) COMMIT 
    Rendered devise/mailer/reset_password_instructions.html.erb (1.3ms) 
    Rendered devise/mailer/reset_password_instructions.text.erb (1.5ms) 

Sent mail to [email protected] (133ms) 
Date: Mon, 29 Apr 2013 01:30:21 +0000 
To: [email protected] 
Message-ID: <[email protected]> 
Subject: testsite Account Reset password instructions 
Mime-Version: 1.0 
Content-Type: multipart/alternative; 
boundary="--==_mimepart_517dcd2d93927_71bc677870116dc"; 
charset=UTF-8 
Content-Transfer-Encoding: 7bit 



----==_mimepart_517dcd2d93927_71bc677870116dc 
Date: Mon, 29 Apr 2013 01:30:21 +0000 
Mime-Version: 1.0 
Content-Type: text/plain; 
charset=UTF-8 
Content-Transfer-Encoding: 7bit 
Content-ID: <[email protected]> 

Hello [email protected]! 

A Request to change the password for this account has been received. If this is you, and you still want to change the password, you can do so by clicking on the link below. 

<a href="http://test.testsitethefuture.com/password/edit?reset_password_token=NysDaribCpgNySc5Nmog">Change my password</a> 

If you didn&#x27;t request this, please ignore this email. 


----==_mimepart_517dcd2d93927_71bc677870116dc 
Date: Mon, 29 Apr 2013 01:30:21 +0000 
Mime-Version: 1.0 
Content-Type: text/html; 
charset=UTF-8 
Content-Transfer-Encoding: 7bit 
Content-ID: <[email protected]> 

<p>Hello [email protected]!</p> 

<p>A Request to change the password for this account has been received. If this is you, and you still want to change the password, you can do so by clicking on the link below.</p> 

<p><a href="http://test.testsitethefuture.com/password/edit?reset_password_token=NysDaribCpgNySc5Nmog">Change my password</a></p> 

<p>If you didn&#x27;t request this, please ignore this email.</p> 


----==_mimepart_517dcd2d93927_71bc677870116dc-- 

Redirected to http://test.testsitethefuture.com/login 
Completed 302 Found in 2520ms (ActiveRecord: 0.0ms) 
Started GET "/login" for 174.xx.xxx.xx at 2013-04-29 01:30:22 +0000 
Processing by Devise::SessionsController#new as HTML 
    BlogPost Load (3.0ms) SELECT `blog_posts`.* FROM `blog_posts` 
    Rendered devise/_links.erb (0.8ms) 
    Rendered devise/sessions/new.html.erb within layouts/application (7.0ms) 
    Rendered layouts/_shim.html.erb (0.0ms) 
    Rendered layouts/_header.html.erb (2.2ms) 
    Rendered layouts/_promo_bar.html.erb (1.2ms) 
    Rendered layouts/_footer.html.erb (2.6ms) 
Completed 200 OK in 49ms (Views: 35.9ms | ActiveRecord: 3.0ms) 

Любые идеи о том, что я должен искать?

среды/test.rb

Myapp::Application.configure do 
    config.cache_classes = false 
    config.serve_static_assets = true 
    config.static_cache_control = "public, max-age=3600" 
    config.whiny_nils = true 
    config.consider_all_requests_local = true 
    config.action_controller.perform_caching = false 
    config.action_dispatch.show_exceptions = false 
    config.action_controller.allow_forgery_protection = false 
    config.active_record.mass_assignment_sanitizer = :strict 
    config.active_support.deprecation = :stderr 
    config.action_mailer.default_url_options = {:host => 'myapp.com'} 
    config.action_mailer.delivery_method = :smtp 
    config.action_mailer.perform_deliveries = true 
    config.action_mailer.raise_delivery_errors = false 
    config.action_mailer.default :charset => "utf-8" 
    config.action_mailer.smtp_settings = { 
     address: "smtp.gmail.com", 
     port: 587, 
     domain: "myapp.com", 
     authentication: "plain", 
     enable_starttls_auto: true, 
     user_name: '[email protected]', 
     password: 'xxxxxxxxxxx' 
    } 
end 
+0

любой шанс, что вы можете отправить свой почтовый конфигуратор, пожалуйста, – Richlewis

+0

Вы не настроили настройки в блоке 'config.mail' в вашей' production' или 'development'. – David

+0

Если моя конфигурация почтовой системы настроена неправильно, то никаких сообщений электронной почты не будет. Вся электронная почта выходит, за исключением сброса пароля. – EastsideDeveloper

ответ

0

Проверьте настройки SMTP Mailer в файле конфигурации, от входа он показывает, что почта правильно отправки, но не поставляется, из-за проблемы настроек SMTP.

Исправьте настройки SMTP и проверить почтовую программу из консоли

Ex:- 

Notification.forgot_password("[email protected]").deliver 
+0

См. Мой вопрос, первое предложение: Контроллер My Devise работает нормально, отправляя электронные письма, за одним исключением: отправка электронной почты с запросами на сброс пароля. Кроме того, в среде разработки письмо с инструкциями по сбросу пароля отправляется в порядке. – EastsideDeveloper

+0

Да, я видел из-за этого только я сказал попробовать код в консоли и перед этим проверить настройки smtp, если вы используете настройку gmail smtp, удалите ответ из блока отправки почты. Даже журнал показывает, что почта отправляет его, не отправляет почту по электронной почте, если параметры smtp неверны. Какую ОС вы используете? –

0

Имея линию ActionMailer::Base.delivery_method = :smtp in config/environment.rb переопределяет ActionMailer::Base.delivery_method = :test в конфигурации/сред/test.rb.

Итак, добавьте эту строку, ActionMailer::Base.delivery_method = :smtp' from config/environment.rb и поместите ее в config/environment/test.rb. Это позволяет вам разместить

ActionMailer::Base.delivery_method = :test in config/environments/test.rb.

Примечание. Чтобы эти изменения вступили в силу, необходимо перезагрузить сервер.

В конфигурации/environment.rb:

# Configuration for using SendGrid on Heroku 
ActionMailer::Base.smtp_settings = { 
    :address  => 'smtp.sendgrid.net', 
    :port   => '587', 
    :authentication => :plain, 
    :user_name  => 'app[my app number]@heroku.com', 
    :password  => '[something super secret]', 
    :domain   => '[let's get this party started!.com]', 
    :enable_starttls_auto => true 
} 
ActionMailer::Base.delivery_method = :smtp 

работал для меня.

+0

Вы прочитали мой вопрос? 1) Я не использую Героку. 2) У меня нет ActionMailer :: Base.delivery_method =: test в моем test.rb 3) У меня уже есть config.action_mailer.delivery_method =: smtp в моем test.rb 4) Я не использую SendGrid 5) Я не есть что-то связанное с отправкой по почте в config/environment.rb – EastsideDeveloper

+0

Да, я прочитал ваш вопрос, попробуйте добавить ** ActionMailer :: Base.delivery_method =: smtp ** в ** config/environment.rb **. Это похоже на вашу проблему. Я создал приложение на героку и столкнулся с той же проблемой. Также я решил проблему, как упоминалось выше. Пожалуйста, проверьте –

+0

Добавление ActionMailer :: Base.delivery_method =: smtp в конфигурацию/среду.rb не работает и ничего не добавляет, потому что эта строка уже находится в /config/environments/test.rb. Прочитайте мой вопрос – EastsideDeveloper

Смежные вопросы