如何使用Devise设置电子邮件确认?

那里有一个教程,解释如何设置Devise的注册确认电子邮件(无论是在开发和生产),即如果你没有设置的行动邮件程序?

谷歌search刚刚出现了一堆与此相关的单独部分。 没有一件足以说明问题,我不确定它们是如何融合在一起的。 有没有一步一步的解释,甚至解释了最初的步骤?


终于搞定了。 遵循以下接受的答案中的所有步骤,然后将以下内容添加到我的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调用中包含可确认的内容

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

2.确保您添加可确认的用户迁移

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

如果您使用的是t.confirmable 2.0+,则失败,因为t.confirmable不再提供迁移助手,因此t.confirmable会引发错误。 而是从其迁移指南中复制标记为“可确认”的块。

3.使用以下任一命令生成devise视图,以便可以覆盖devise邮件视图:

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

您现在可以在devise/mailer/confirmation_instructions.html.erbusers/mailer/confirmation_instructions.html.erb覆盖邮件视图,具体取决于您的设置

4.对于开发环境,在/config/environments/development.rb添加以下configuration行

 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上有一个SMTP服务器: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要testing开发中的设置,请安装mailcatcher gem,您将在开发中用作SMTP服务器,捕获所有传入的邮件并在http://localhost:1080/ :上显示它们。

 gem install mailcatcher 

安装完成后,使用以下命令启动mailcatcher服务器:

 mailcatcher 

玩具SMTP服务器将在端口1025上运行,捕获电子邮件并在HTTP端口1080上显示它们。

您现在可以创build一个帐户并查看确认。

我相信你应该再次编辑它…端口号。 应该在引号..像这样: –

 :port => "587", 

我在rails 3.2.0 / ruby​​ 1.9.2中遇到了一个问题

你看过“ ActionMailer Rails指南”吗?