是否有一个教程可以解释如何从头开始(在开发和生产中)设置Devise的注册确认电子邮件,即,如果您没有设置Action Mailer?
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]"
}
1.确保您在Model.devise调用中包括了Confirmable
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
会引发错误。而是从其迁移指南中复制标有“ 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服务器:
mailcatcher
玩具SMTP服务器将在端口1025上运行,以捕获电子邮件并将其放到HTTP端口1080上。
现在,您可以创建一个帐户并查看确认。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句