IMAP同步阶段:如果Group.incoming_email未设置为Group.email_username,则为新用户

尝试 IMAP 同步 时,从 IMAP 账户导入过程中为 Group.email_username 创建了一个临时用户。

在尝试理解发生了什么时,我注意到 Group.find_by_email 并未考虑 Group.email_username,因此至少需要设置 Group.incoming_email 以包含该值。

复现步骤:

  • 启用 IMAP 同步
  • 在群组上配置电子邮件同步选项,但保持 Group.incoming_email 未配置
  • Group.email_username 发送邮件
1 个赞

我认为 IMAP 目前仍有一些工作需要完善,@sam

它应该得到了合理的支持,我们在 Meta 的生产环境中确实使用了它。

@martin 你能快速看一下这份报告吗?

感谢 @thoka,我查看了这个问题。我认为你说得对,Group.find_by_email 确实需要加入 email_username,但这并不是导致群组邮箱用户在此情况下被暂存的原因。这实际上发生在稍后的接收器阶段,当我们向新创建的帖子添加其他地址时。关键在于 should_invite?

该逻辑进而会将邮箱与 group_incoming_emails_regex 进行比较:

我认为我们需要修改该正则表达式(或另一个表达式),使其也能与 email_username 进行比较。到目前为止,我们发现群组暂存用户的创建并未造成问题,尽管我理解这看起来有些杂乱/多余。在修改时,我需要做一些测试,以确保群组暂存用户不会因某些目前我尚不清楚的重要原因而被创建。

5 个赞

该问题已通过 FEATURE: Use group SMTP settings for sending user notification emails (initial) by martin-brennan · Pull Request #13220 · discourse/discourse · GitHub 修复,且群组电子邮件配置界面近期已全面升级。不过,IMAP 功能仍处于 Alpha 阶段,请谨慎使用,风险自负。

3 个赞