我们正在移除对 Discourse 中 IMAP 的支持。 详见此帖:IMAP support for group inboxes - #39 by martin 。 ![]()
我们很高兴推出群组收件箱 IMAP 支持的 Alpha 版本。此功能允许按群组输入 IMAP 凭据和设置,以将群组收件箱与电子邮件收件箱同步。 ![]()
![]()
![]()
这是一个 Alpha 阶段的功能,因此它尚未完全完成和完善。它极有可能存在故障,我们目前并未在生产环境中维护或使用它。使用风险自负!
![]()
优势
- 您的群组可以立即开始使用 Discourse 收件箱,因为所有现有邮件都将同步!

- 您的群组可以在 Discourse 和您的电子邮件提供商之间同步消息,从而避免单点故障。人们可以从电子邮件账户或 Discourse 内部回复,所有内容都会自动同步

- 您不再需要为您的电子邮件提供商到 Discourse 传入邮箱设置复杂的转发规则。

- 电子邮件标签将与 Discourse 标签同步,使内容井井有条

- 即使您从 Discourse 回复,您也将使用您设置的电子邮件地址回复给给您的群组发送邮件的人。不再会有混淆!

功能
- 所有传入和传出邮件都将在 IMAP 服务器和 Discourse 之间同步,并根据解析后的邮件创建相应的主题和回复。回复可以从 Discourse 或 IMAP 服务器创建,所有内容都会同步!
- 可以从 Discourse 群组收件箱或电子邮件账户回复电子邮件。
- 应用于 Discourse 主题的标签将作为标签创建并应用于 IMAP 服务器上的电子邮件(这取决于提供商)。
- 在 IMAP 服务器上归档的电子邮件将在群组收件箱中归档。
- 在 Discourse 上归档的群组私信主题将在 IMAP 服务器上归档。
- 在 IMAP 服务器上删除的电子邮件将删除群组收件箱中的主题。
- 在 Discourse 上删除的群组私信主题将在 IMAP 服务器上删除。
- 启用此功能的群组发送的电子邮件,其“回复至”地址将设置为 IMAP 设置中配置的电子邮件用户名。
入门指南
首先,在群组上设置此功能之前,必须配置一些站点设置。
enable imap和enable smtp都必须启用。IMAP 用于与邮件服务器同步,SMTP 用于从邮件服务器发送电子邮件。tagging enabled和allow staff to tag pms- 两者都必须启用,因为标签同步会将标签应用于私信。enable imap write- 如果您希望 Discourse 中的更改反映在您的邮件服务器中(例如标签、归档主题和删除主题),则必须启用此项。enable imap idle- 如果您的邮件服务器支持 IDLE,这将使我们能够接收来自邮件服务器的实时更新。这大大加快了电子邮件提供商中的更改反映到 Discourse 的速度。您应该开启此功能(例如 Gmail 支持它)。如果您想了解所有详细信息,可以 阅读 RFC 2177 中关于 IDLE 的内容。imap polling period mins- 如果不支持IDLE,这是我们在检查 IMAP 服务器是否有更改之前等待的分钟数。如果启用了enable imap write,这也是我们在从 Discourse 向 IMAP 服务器发送更改之间等待的时间。最小值为 1 分钟。
这些设置可以保持默认值,如果您发现同步存在问题,可以进行调整:
imap polling old emails- 每次轮询 IMAP 邮箱时更新的最大旧邮件(已处理)数量(0 表示全部)。imap polling new emails- 每次轮询 IMAP 邮箱时更新的最大新邮件(未处理)数量。imap batch import email- 触发导入模式(禁用帖子警报)的最小新邮件数量。
如果您希望标签与 IMAP 服务器同步,需要启用 tagging enabled 和 allow staff to tag pms 站点设置。
接下来,您需要进入要同步的群组,并填写 IMAP 服务器设置。
这些设置将因提供商而异,详见下文。输入设置和凭据后,点击“保存更改”,我们将验证这些凭据是否与 IMAP 提供商的服务器匹配。如果成功,邮件箱列表将被填充,您需要选择要同步的邮件箱(关于此操作的指导也取决于提供商):
如果凭据验证失败,页面上将显示错误消息。明确说明:输入的 SMTP 服务器将用于代表在用户名和密码下输入的账户发送电子邮件,而不是用于批量邮件的主要 Discourse SMTP 配置。
最后,在您的 app.yml 文件中,您需要在 env 部分添加 DISCOURSE_ENABLE_EMAIL_SYNC_DEMON: true,然后运行 ./launcher rebuild。这将启动后台工作进程并开始同步电子邮件! ![]()
特定提供商信息
Gmail
您必须生成应用专用密码,否则您需要开启“低安全性应用访问”,而 Google 迟早会取消此功能。请在 IMAP 设置中使用此密码代替您的 Gmail 账户密码。详见 Sign in with app passwords - Gmail Help 。 
- 请确保为 SMTP 和 IMAP 使用以下设置:
- IMAP 端口:987
- SMTP 端口:587
- IMAP 服务器:imap.gmail.com
- SMTP 服务器:smtp.gmail.com
- 为 SMTP 和 IMAP 均使用 SSL
- 强烈建议(即将成为 UI 功能)您仅选择“[Gmail]/所有邮件”邮件箱进行同步。
- 当 Discourse 中的主题被删除时,我们不会立即删除 Gmail 中的电子邮件,而是将其移动到垃圾箱。Gmail 内部的“30 天”删除功能将从那里接管。
- 应用于 Discourse 主题的标签将在 Gmail 中创建标签,并将其应用于电子邮件线程。Gmail 中的标签也是 IMAP 邮件箱!
限制
这是一个 Alpha 阶段的功能,因此它尚未完全完成和完善。因此,目前适用以下限制:
- 目前仅支持 Gmail 作为 IMAP 提供商。我们有一些通用的 IMAP 功能,但不能保证能正常工作。Outlook Online 是我们下一个主要支持目标。
- 从 Gmail 垃圾箱中恢复已删除的电子邮件并在 Discourse 中反映其状态目前不稳定。
在电子邮件已经同步后更改同步邮件箱是不推荐的,这可能导致许多奇怪的问题。 
- 每个群组只能同步一个邮件箱。
- 群组之间的通信尚属未知领域,无法正常工作(例如,如果每个电子邮件都设置为不同的群组,从 support@yoursite.com 向 team@yoursite.com 发送邮件)。
由于这是一个 Alpha 功能,可能还存在其他细微的陷阱和未完善之处。
反馈与路线图
我们非常欢迎任何使用此功能与 Gmail 的用户提供反馈。我将负责解决任何错误和问题。目前的调试工作有点棘手,但我正在努力改进!
接下来我将着手处理以下内容:
- 改进调试功能,使其更容易查看 IMAP 日志并找出问题所在。
- 改进群组电子邮件界面,限制可从 Gmail 选择的邮件箱,并阻止/禁止更改邮件箱。
- 验证以防止多个群组使用相同的 IMAP 凭据。
- 可能改进群组 IMAP 设置的存储方式,并提供更好的凭据验证用户体验。
- Outlook 支持。
目前,在我们解决这些问题的过程中,此功能对我们的托管客户不可用。
特别感谢 
@dan 和 @j.jaffeux 是此巨大功能的主要贡献者,他们为此工作了 很久。没有他们出色的工作,我无法将功能推进到这一步并发布此公告
。

