Iceman
(Iceman)
1
大家好,
我当前使用的是 2.6.0.beta5 版本(今天看到 beta6 了,太棒了!)。似乎所有邮件都能正常发送(如 digest、user_posted、user_replied 等),但 notify_old_email_add、confirm_new_email 和 forgot_password 这几类邮件却无法正常工作。
所谓“无法正常工作”,是指这些邮件实际上并未到达收件人(尽管它们在 Discourse 的邮件注册表中显示为已发送)。
唯一的例外是更改邮箱的邮件:该邮件确实能送达,但当用户点击其中的链接时,会收到“抱歉,此确认链接已失效”的提示。
请问有什么线索或建议吗?我觉得很奇怪,为什么其他邮件都能正常送达,唯独这几类不行。这导致用户难以验证账户或更改邮箱,甚至可能造成账户被锁定的风险。
谢谢!
附注:在排查过程中发现,新注册用户的邮箱确认功能正常,但现有用户却无法收到确认邮件或更改密码的邮件。
Iceman
(Iceman)
2
经过一番深入排查,发现这种情况仅在特定场景下发生。我不确定这是“按设计如此”、一个疏忽,还是我理解有误。
如果您最初创建论坛时允许自由注册,但后来将设置更改为“必须批准用户”,那么任何旧用户(当时无需批准)尝试更改密码或进行类似操作时,都会因账户“需要批准”而无法完成。此外,更改密码和确认邮件也不会发送(尽管 Discourse 的邮件日志显示这些邮件已发送)。
这还会导致这些用户无法在其他设备上登录,因为系统认为该用户“未获批准”。
目前的变通方法是让用户在其他设备上登录,这样管理员或版主会收到“待批准”的提示,之后系统就能按预期工作(从技术角度而言)。
无论这一流程是否属于预期行为(如果有人能澄清这一点,我将不胜感激,至少让我知道自己没有胡思乱想 :P),其中还涉及人为因素:在社区中活跃了一段时间的用户,一旦看到此类提示,往往会惊慌失措或“触发”反应,因为他们并不知道自己需要再次批准,毕竟他们早已拥有账户。许多用户会“取消”批准流程,以为这是系统错误或其他问题,导致管理员或版主无法看到批准请求。