Deviseでconfirmableの登録確認メールを受け取れない場合に登録を完了させる方法
概要
Deviseでconfirmable利用時にメールを送信できない、且つ、letter_openerなども使えない場合にどうやって登録を完了させるかを調べたのでメモ
環境
Ruby: 2.4.0
Rails: 5.0.1
Devise: 4.2.0
手順
- Webの画面でemail, passwordを入力する
- rails consoleで該当のUserを取得
- Devise::Models::Confirmable#send_confirmation_instructionsを実行して、Mail objectを取得し、bodyをconsoleに表示させる
- 本文中のURLをコピーしてブラウザで開く
- Webの画面で変更するパスワードを入力して、登録を完了させる
> User.find(1).send_confirmation_instructions.body
(0.2ms) BEGIN
(0.2ms) COMMIT
Rendering devise/mailer/confirmation_instructions.html.slim
Rendered devise/mailer/confirmation_instructions.html.slim (0.6ms)
Devise::Mailer#confirmation_instructions: processed outbound mail in 115.8ms
Sent mail to [email protected] (4.1ms)
Date: Thu, 02 Feb 2017 17:36:46 +0900
From: [email protected]
Reply-To: [email protected]
To: [email protected]
Message-ID: <[email protected]>
Subject: xxxxx
Mime-Version: 1.0
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: base64
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
=> #<Mail::Body:0x007fa246f96100
@boundary=nil,
@charset=nil,
@encoding="8bit",
@epilogue=nil,
@part_sort_order=["text/plain", "text/enriched", "text/html"],
@parts=[],
@preamble=nil,
@raw_source=
"<p>ようこそ、[email protected]さん!</p><p>次のリンクでメールアドレスの確認が完了します:</p>
<p>
<a href=\"http://localhost:3000/users/confirmation?confirmation_token=xxxxxxxxxxxxxxxx&locale=ja\">アカウント確認</a>
↑このURLをコピーして、ブラウザで開く
</p>">
あとがき
letter_openerの素晴らしさを享受していたので使えない環境の場合どうするのか?とか思っていたが、Deviseも良く出来たライブラリだったので、意外と簡単に出来た
が、あまり情報は無かったので、やっぱレアケースなんだなと認識した
Author And Source
この問題について(Deviseでconfirmableの登録確認メールを受け取れない場合に登録を完了させる方法), 我々は、より多くの情報をここで見つけました https://qiita.com/ukoasis/items/e8dc35e1be582be260ce著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .