备份恢复禁用邮件

恢复备份时自动暂停出站邮件并显示合适的站点通知以提醒管理员重新启用,这非常好。

是否可以将此功能扩展为同时覆盖 POP 轮询?以防 POP 轮询已配置并开始拉取消息。

当“启用 POP3 轮询”和“从服务器删除 POP3 轮询邮件”这两个设置同时启用时,这将非常有用。

4 个赞

是的,我附议。

如果能有一个“不联系任何外部服务”的模式就太好了,该模式可以禁用所有对论坛外部世界产生永久性影响的外部操作,例如出站邮件(除真正必要的邮件外)、从 POP3 服务器删除邮件以及触发 Webhooks。

5 个赞

是的——这是一种“隔离模式”,让您可以在不影响运行实例的情况下安全地测试备份恢复(定期这样做是良好的实践);或在迁移过程中,您可以先启动新实例并安全地检查,然后再进行切换(前提是源站点处于只读模式或已下线等)。

2 个赞

好观点,@gerhard 对此有什么想法吗?

2 个赞

我同意。“隔离模式”将是一个有用的功能,不仅仅是在恢复之后。

目前,可以通过一个简单的插件实现类似功能。类似下面的代码应该可以工作:

# name: isolation-mode
# about: 在恢复备份后启用隔离模式。
# version: 1.0

after_initialize do
  on(:site_settings_restored) do
    SiteSetting.pop3_polling_enabled = false
    WebHook.update_all(active: false)
  end
end

作为替代方案,你也可以使用 discourse restore 命令行工具,并在之后通过 rails runner 更新站点设置等。

3 个赞

这仍然是最好的建议吗?

是的,没有任何改变。“隔离模式”功能不存在,因此在恢复时,除了禁用传出电子邮件之外,无法执行更多操作,因为没有办法通知管理员并为他们提供重新启用所有功能的简便选项。

1 个赞

我已将其添加到我自己的仓库中(当然,已注明 @gerhard 的功劳!)。

我添加的内容:

  • disable emails: 是
  • login required: true

瞧,在完成备份恢复后:

这对于托管包含真实用户电子邮件的敏感暂存版本来说,确实是救命稻草……

再次感谢!

1 个赞