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

jyli7

是否有一个教程可以解释如何从头开始(在开发和生产中)设置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.erbusers/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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Django 2-如何使用电子邮件确认和CBV注册用户?

如何用Express / Node确认电子邮件地址?

如何使用cPanel电子邮件帐户在laravel中发送确认电子邮件?

如何使用AWS Lightsail设置电子邮件

使用Async / Await的Nodemailer电子邮件确认

如何使用Angular和ASP.NET Core 3.1确认电子邮件

如何通过设计发送确认电子邮件?

使用数字代码实施电子邮件确认

如何更改ASP.NET Identity用户的电子邮件,而无需确认电子邮件?

如何使用/ usr / bin / mail设置电子邮件标题?

如何使用devise仅更新电子邮件?

使用SSMTP设置GMX电子邮件

如何在没有电子邮件确认的情况下使用Yesod.Auth.Email?

我正在使用Devise确认电子邮件ID和登录。是否可以直接登录?

如何设置电子邮件过期?

如何创建电子邮件的确认链接?

如何在电子邮件中创建确认链接?

如何设置Devise Mailer电子邮件的自定义密件抄送/收件人字段?

如何通过确认电子邮件(PHP)发送密码

Strapi:用户注册后如何发送确认电子邮件?

如何检索电子邮件确认令牌代码?

使用 Devise 发送不同的确认电子邮件

如何使用 SeedFu gem 跳过设计确认电子邮件

如何绕过用户创建的确认电子邮件

如何更改电子邮件设置

如何从swift发送确认电子邮件

如何使用 GmailApp 设置电子邮件正文颜色

如何让 IHostingService 在订单确认时发送电子邮件?

使用 Fortify Laravel 进行电子邮件确认