[解決済み] Deviseのメール確認はどのように設定するのですか?
質問
Deviseのサインアップ確認メールをゼロからセットアップする方法(開発と本番の両方)を説明するチュートリアルはありますか?
Google で検索すると、この件に関連する別の記事がたくさん見つかりました。1 つの部分で十分な説明はなく、それらがどのように組み合わされているのかわかりません。段階的な説明や、最初のステップを説明するようなものはないでしょうか?
最終的にそれを動作させました。以下の受理された回答のすべてのステップに従った後、私の 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]"
}
どのように解決するのですか?
1. Model.deviseの呼び出しにconfirmableが含まれていることを確認してください。
class User < ActiveRecord::Base
devise :database_authenticatable, :confirmable ...
end
2. ユーザーマイグレーションにconfirmableを追加してください。
create_table :users do |t|
t.database_authenticatable
t.confirmable
...
end
devise 2.0+ を使っている場合、devise はもはやマイグレーションヘルパーを提供しないので、これは失敗します。
t.confirmable
はエラーを発生させます。代わりに、"Confirmable" と書かれたブロックを以下の場所からコピーしてください。
その移行ガイド
.
3. 以下のいずれかのコマンドでdeviseビューを生成し、deviseメーラのビューを上書きできるようにします。
rails generate devise:views # global
rails generate devise:views users # scoped
でメーラービューをオーバーライドできるようになりました。
devise/mailer/confirmation_instructions.html.erb
または
users/mailer/confirmation_instructions.html.erb
あなたの設定によります
4.
については
開発
環境では、以下の設定行を
/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.rb
の場合、以下のようなものを使うことができます (localhost:25にSMTPサーバがあると仮定します)。
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
開発中の設定をテストするために、mailcatcher gem をインストールします。これは開発中に SMTP サーバーとして使用し、受信したすべてのメールをキャッチして
http://localhost:1080/
:
gem install mailcatcher
インストールしたら、コマンドでメールキャッチャーサーバを起動します。
mailcatcher
おもちゃのSMTPサーバはポート1025で動作し、メールをキャッチしてHTTPポート1080に送信します。
これでアカウントを作成し、確認事項を見ることができます。
関連
-
[解決済み】Rails。Ruby on Railsの移行でデータベースカラムの名前を変更するにはどうすればよいですか?
-
[解決済み】bcrypt LoadError: Cannot load such file
-
[解決済み] rake db:migrateを使って1ステップだけロールバックする方法
-
[解決済み] nil:NilClass の未定義メソッド `each' - しかし、なぜ?
-
[解決済み] gemのアップデート後、"Asset was not declared to be precompiled in production "でテストが失敗する。
-
[解決済み] Ruby on Railsのマイグレーションでデータベースのカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] /users/sign_out" に一致するルートがない devise rails 3
-
[解決済み】デバイス登録コントローラを上書きする。
-
[解決済み] Heroku/devise - リンク先のホストがありません! hostパラメータを指定するか、default_url_options[:host]を設定してください。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】修正方法:エラー:'<ファイル名>'にチェックアウトされたコミットがない fatal: コマンドプロンプトで "git add ." を入力するとファイルの追加に失敗する
-
[解決済み】Rails。Ruby on Railsの移行でデータベースカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] rake db:migrateを使って1ステップだけロールバックする方法
-
[解決済み] どなたか、collection_selectをわかりやすく説明していただけませんか?
-
[解決済み] Oauth2 Instagram API "リダイレクトURIが登録されたリダイレクトURIと一致しない"
-
[解決済み] Ruby:Rubyの配列にinclude.の反対はある?
-
[解決済み] gemのアップデート後、"Asset was not declared to be precompiled in production "でテストが失敗する。
-
[解決済み] railsで':remote => true'はどのように動作するのでしょうか?
-
[解決済み] bundle install --without production は何をするのですか?
-
[解決済み] 属性を割り当てる場合、引数としてハッシュを渡す必要がある