gpt4 book ai didi

ruby-on-rails - 如何使用 Devise 设置电子邮件确认?

转载 作者:行者123 更新时间:2023-12-03 04:32:12 27 4
gpt4 key购买 nike

是否有教程解释如何从头开始设置 Devise 的注册确认电子邮件(在开发和生产中),即如果您没有设置 Action Mailer?

谷歌搜索刚刚出现了一堆与此相关的单独片段。没有一篇文章能够解释得足够多,而且我不确定它们如何组合在一起。是否有分步说明,或者甚至可以解释初始步骤?

<小时/>

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

如果您使用的是 devise 2.0+,则会失败,因为 devise 不再提供迁移帮助程序,因此 t.confirmable引发错误。相反,从 their migration guide 复制标记为“Confirmable”的 block 。 .

3.使用以下任一命令生成设备 View ,以便您可以覆盖设备邮件程序 View :

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

您现在可以覆盖 devise/mailer/confirmation_instructions.html.erb 中的邮件程序 View 或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 上。

您现在可以创建帐户并查看确认信息。

关于ruby-on-rails - 如何使用 Devise 设置电子邮件确认?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8186584/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com