Restore Mailing List Mode Daily Summary

前言:

这实际上并不是对插件的更新,而是一个热修复。它并没有真正修补插件以适配新系统,而是将某些被移除的部分重新集成到了插件中。它不具备未来兼容性。而且,它肯定无法解决 Discourse 团队将每日摘要视为不必要的边缘情况、而非保持邮件偏好用户参与的重要功能这一问题。Discourse 已不再能真正作为邮件列表的替代品,如果您有能力迁移,建议尽快行动。此外,它也无法解决“我们不需要文档或正确的发布说明”这种问题。

话虽如此,我们在生产环境中使用了此方案,似乎可以正常工作。虽然效果不佳,但总比没有强。

如何让邮件重新正常发送

  1. 实施 @lkramer 的修复方案
    Restore Mailing List Mode Daily Summary - #52 by lkramer

现在您应该可以再次切换 UI 按钮了。

  1. 重新添加 apply_notification_styles 方法
    在 engine.rb 文件的第 11 行(该类中的第一个方法)添加以下内容:
 def apply_notification_styles(email)
                   email.html_part.body = Email::Styles.new(email.html_part.body.to_s).tap do |styles|
                   styles.format_basic
                   styles.format_html
                   end.to_html
                   email

请注意,原始函数(参见导致问题的提交以了解详情)使用的是 styles.format_notification 而不是 styles.format_html。由于 _notification 已被移除,我们暂时使用 _html。这是否是个好主意?不是。它能起作用吗?看起来可以。至少我们还有微小机会避免它在下次更新中被移除。

  1. 蛇油疗法

我还将整个 mailing_list.html.erb 包裹在一个带有 summary-email 类的 div 标签中,并在设置中禁用了摘要邮件的主题样式。这最初只是绝望的尝试,并未产生任何效果。您很可能无需此步骤即可正常运行,但除非再次出现问题,否则我不会再碰这堆混乱。因此,如果您遇到格式问题,不妨尝试一下。

希望这能帮到您。

1 个赞