web-dev-qa-db-ja.com

Deviseで確認メールを設定するにはどうすればよいですか?

Deviseのサインアップ確認メールをゼロからセットアップする方法を説明するチュートリアルがありますか?

Googleの検索では、これに関連する一連の個別の断片が発見されました。誰も十分な説明をしていませんし、それらがどのように適合するかはわかりません。段階的な説明がありますか、または最初の手順を説明するものがありますか?


ようやく機能しました。以下の受け入れられた回答のすべての手順を実行してから、environment.rbファイルに次を追加しました。

ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
   :tls => true,
   :address => "smtp.gmail.com",
   :port => 587,
   :domain => "gmail.com",
   :authentication => :login,
   :user_name => "[username]",
   :password => "[password]"
 }
123
jyli7

1。Model.devise呼び出しに確認可能を含めるようにしてください

class User < ActiveRecord::Base
  devise :database_authenticatable, :confirmable ...
end

2。確認可能なものをユーザーの移行に追加してください

create_table :users do |t|
  t.database_authenticatable
  t.confirmable
  ...
end

Devise 2.0+を使用している場合、deviseは移行ヘルパーを提供しなくなり、t.confirmableがエラーを発生させるため、これは失敗します。代わりに、「確認可能」というラベルが付いたブロックを 移行ガイド からコピーします。

3。次のコマンドのいずれかを使用して、deviseビューを生成します。そのため、devise mailerビューをオーバーライドできます。

Rails generate devise:views # global
Rails generate devise:views users # scoped

セットアップに応じて、devise/mailer/confirmation_instructions.html.erbまたはusers/mailer/confirmation_instructions.html.erbのメーラービューをオーバーライドできるようになりました

4。development環境の場合、次の設定行を/config/environments/development.rbに追加します

config.action_mailer.default_url_options = { :Host => 'localhost:3000' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {:address => "localhost", :port => 1025}

5。/config/environments/production.rbproduction環境では、次のようなものを使用できます(SMTPサーバーがある場合) localhost:25):

config.action_mailer.default_url_options = {:Host => 'yourdomain.com'}
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
  :address => "127.0.0.1",
  :port    => 25,
  :domain  => 'yourdomain.com'
}

6開発でセットアップをテストするには、開発中のSMTPサーバーとして使用するmailcatcher gemをインストールし、すべての着信メールをキャッチしてhttp://localhost:1080/に表示します。

gem install mailcatcher

インストールしたら、次のコマンドでメールキャッチャーサーバーを起動します。

mailcatcher

おもちゃのSMTPサーバーがポート1025で実行され、メールをキャッチし、HTTPポート1080でそれらのエラーを報告します。

アカウントを作成し、確認を表示できるようになりました。

202
clyfe

もう一度編集する必要があると思います...ポート番号引用符で囲む必要があります..このように:-

:port => "587",

Rails 3.2.0/Ruby 1.9.2で問題に直面しました

7
user1571530

ActionMailer Rails Guide を見ましたか?

3
clem