Devise 何时实际发送重新确认电子邮件?

When does Devise actually send reconfirmation emails?

我正在尝试向 Rails 应用程序中名为 "Project" 的模型添加电子邮件确认:用户应该能够为项目设置电子邮件地址,直到他们单击发送到提供的电子邮件地址的确认 link。

虽然我不需要它的身份验证功能,但我认为 Devise gem 可能会有用。我希望使用 :reconfirmable 来实现该功能:当用户尝试将电子邮件保存到项目时,它会保存到 unconfirmed_email 列,直到他们确认。

它似乎在一定程度上起作用了——数据库已正确更新,生成了令牌,"confirmation_sent_at" 字段已设置。但是没有呈现电子邮件模板(也没有发送电子邮件)。查看 lib/devise/models.rb 中的代码路径,我可以看到在将电子邮件字段保存到之前,如何调用一个方法来拦截保存,而不是保存到 unconfirmed_email。但是电子邮件发送实际上是在哪里触发的呢?我需要做什么才能激活它?

假设您已正确配置 Devise 以使用 :confirmable 功能并正确配置了您的电子邮件 (as described in this answer)。那么它应该像这样调用一样简单:

user.send_confirmation_instructions # where user is one of your Devise users

至少,进行 send_confirmation_instructions 调用应该会在 Rails 日志中显示电子邮件正在发送。如果是这种情况,但您从未收到过电子邮件,那么您的电子邮件配置不正确。