在 Discourse 中镜像一个只读邮件列表

:bookmark: 本指南说明了如何使用 Discourse 创建邮件列表的只读镜像。它涵盖了必要的站点设置、类别配置和订阅过程。

:person_raising_hand: 所需用户级别:管理员

Discourse 可以作为邮件列表的存档,同时允许注册用户使用其大部分功能。本指南将引导您完成设置自己的邮件列表镜像的过程。

:eyes: 请在Ruby-Talk 邮件列表镜像上查看我们的实际操作示例。

摘要

  • 配置站点设置以处理电子邮件
  • 为邮件列表创建或修改一个类别
  • 订阅邮件列表
  • 了解镜像过程的工作原理

以下指南使用两个电子邮件地址作为占位符。您需要将它们替换为您自己的实际地址。

discourse@example.com 是 Discourse 接收传入电子邮件的地址
mailing-list@foo.test 是邮件列表的提交地址[^1]

[^1]:即人们向此地址发送邮件以在列表上发帖,并且它也出现在邮件列表发送给成员的邮件的“收件人:/抄送:”行中

配置站点设置

  1. 如果您的托管方案未预先配置传入电子邮件,请为您与 Discourse 电子邮件地址关联的帐户(例如 discourse@example.com)设置POP3 轮询或通过 API 手动轮询

  2. 启用以下站点设置:

    • email_in:允许传入电子邮件
    • enable_staged_users:启用暂存用户(对镜像过程至关重要)
  3. 可选设置:

    • authorized_extensions 设置为 * 或添加特定的文件扩展名,以允许您需要的附件类型
    • 启用 always_show_trimmed_content 以允许所有用户查看被截断的内容(隐藏在 image 按钮后面)
    • 启用 display_name_on_posts 并禁用 prioritize_username_in_ux 以进行名称显示偏好设置

创建或修改类别

  1. 创建一个新类别或编辑一个现有类别用于邮件列表帖子。

  2. 配置类别权限:

    • 点击“安全”选项卡,然后点击“编辑权限”
    • 删除所有现有权限
    • 添加“everyone”(所有人)并设置“查看”权限

完成后,它应该如下所示:

  1. 配置类别设置:

    • 点击“设置”选项卡
    • 启用“接受没有帐户的匿名用户的电子邮件”
    • 将“自定义传入电子邮件地址”设置为邮件列表的电子邮件地址(例如 mailing-list@foo.test
    • 启用“类别镜像邮件列表”
  2. 保存类别设置。

订阅邮件列表

  1. 使用您的 Discourse 电子邮件地址(例如 discourse@example.com)订阅邮件列表。

  2. 如果邮件列表具有 Web 界面,请确保进行以下设置:

    • 邮件投递已启用
    • 摘要模式已关闭
    • 密码提醒电子邮件已禁用

对于 Mailman 2,请确保:

  • “邮件投递”设置为“已启用”
  • “设置摘要模式”设置为“关闭”
  • “为此列表获取密码提醒邮件?”设置为“否”

工作原理

启用“类别镜像邮件列表”会更改该特定类别的传入电子邮件的处理方式:

  • 即使启用了 block_auto_generated_emails,也允许自动生成的电子邮件
  • 所有用户都可以通过电子邮件发帖,忽略 email_in_allowed_groups 设置
  • 传入电子邮件使用 Message-ID 来查找相关帖子,而与 find_related_post_with_key 设置无关
  • Markdown 的解释仅限于包含在三个反引号中的代码块
  • 不会为邮件列表帖子发送拒绝电子邮件

常见问题

问:我可以镜像多个邮件列表吗?
答:是的,为每个邮件列表创建一个单独的类别并按照上述说明进行配置即可。

问:用户可以回复通知并向邮件列表发帖吗?
答:不可以,回复通知会发送到 Discourse,而不是原始邮件列表。用户无法通过 Discourse 直接向邮件列表发帖。

问:如何阻止用户通过电子邮件向镜像类别发帖?
答:虽然该类别允许通过电子邮件发帖,但您可以将传入电子邮件地址保密,以防止未经授权的发帖。

31 个赞