Acabamos de tener una situación en un foro donde un usuario publicó en una categoría que estaba siendo monitoreada por otros usuarios. Sin embargo, dado el carácter de su consulta, un moderador la convirtió en un mensaje privado en menos de 3 minutos.
Aunque se convirtió en un mensaje privado, parece que aún así se envió un correo electrónico a quienes vigilaban la categoría donde se publicó originalmente, lo cual no me parece correcto. Habría esperado que el correo electrónico no se enviara, ya que se convirtió en un mensaje privado/personal.
El usuario B inicia un nuevo hilo en la misma categoría.
Un moderador convierte la publicación de B en un mensaje privado solo entre ellos y B, en un breve lapso (por ejemplo, < 5 minutos).
El usuario A sigue recibiendo un correo electrónico que le notifica la nueva publicación x minutos después de que se creó la publicación.
He logrado replicarlo usando dos cuentas de prueba. El correo aún se envía al usuario A (pero no puede ver el mensaje completo si hace clic en él).
No soy un experto en Discourse, pero por lo que puedo ver, el tema activa el trabajo programado en Sidekiq, que luego se envía x minutos después de que se creó el tema.
At the point of being converted to a PM, the email is still sat in Sidekiq. I’m not going to say I’m a Discourse expert, or even say I understand how it works (because I don’t - I just love its format and a member of several Discourse powered sites), so I’m not sure if it could be prevented.
Perhaps a timeline of events could help explain the situation:
5:20pm - User A posts publicly
5:21pm - Mod converts post to a PM
5:30pm - User B receives the “New post” email, with a subject of [Site Site][PM] New Topic
Just after the post was converted, there was a Jobs::UserEmail event in Sidekiq for the new topic.
Only speaking for myself (hosted by Discourse), it seems like my emails land pretty much immediately after a post. I have mailing list mode turned on, send me mail even if I’m on the site, that sort of thing. You might be able to call it back if it hadn’t been sent, but that seems like a race. In this case it was close, but if it had happened after the mod had logged off it likely would have sat there much longer.
The defaults (configurable via site settings) are 20 seconds after posting for personal message notifications, and 10 minutes for all other notifications. The relevant site settings are personal email time window seconds and email time window mins.