Similar a Mirrored mailing list is rejecting registered forum users
No parece serlo. El tema referenciado parece ser un problema de permisos provocado por una configuración incorrecta.
Mis disculpas, lamento la interrupción.
He propuesto una solución para el problema que encontré, pero por todo lo que he encontrado hasta ahora, el componente que estaba realizando la manipulación solo afecta al registro guardado y no afecta al correo entrante durante el procesamiento.
Estoy bastante seguro de que la fuente del problema debe ser otra cosa, pero todavía no sé qué podría ser.
Habiendo visto que este cambio fue fusionado, actualicé nuestra instancia de Discourse hoy y estaré atento a los registros de correos electrónicos rechazados en los próximos días.
Desde la actualización, ya se han registrado tres nuevos errores InvalidPost, pero los detalles del rechazo son diferentes: los tres errores muestran el cuerpo del mensaje correcto (donde antes se mostraba la firma de la lista de correo) y la razón del rechazo es ahora Access Denied.
Al menos eso es una mejora.
¿El motivo del error se queda con el usuario?
¿Estás seguro de que el error es incorrecto? ¿Tiene el usuario permiso para publicar en la categoría? ¿Está activo el usuario?
Por otro lado, la razón no parece ser esa: la cuenta está activa, no suspendida ni silenciada. Sin embargo, noté que la cuenta no está “preparada” (staged), que es el caso de la mayoría de las cuentas cuyas publicaciones de listas de correo terminan en Discourse. Todas las publicaciones de usuarios no preparados son de miembros del equipo de moderación.
Nuestra categoría de espejo de lista de correo se configuró inicialmente utilizando esta guía: Mirroring a read-only mailing list in Discourse
Sin embargo, acabo de revisar los permisos configurados en la categoría y parece que se agregó nuestro grupo de moderadores y a everyone (todos) se le dio permiso de reply (responder).
He eliminado estos permisos adicionales y dejé solo a everyone con el permiso de see (ver). ¿Quizás estos permisos “adicionales” están interfiriendo con la forma en que Discourse maneja estas categorías especiales de “espejo de lista de correo”?
El hecho de que el usuario no esté preparado (staged) podría ser el problema. A los usuarios preparados no se les comprueba si tienen permiso para publicar en la categoría, pero a los usuarios registrados sí. Por lo tanto, si el usuario no está en un grupo que tenga permiso para responder a temas en la categoría, su respuesta será rechazada porque no tiene permiso. Lo mismo se aplica a los nuevos temas y al permiso de ‘crear’.
Hay un tema sobre este problema aquí: Category not accepting "anonymous email" from known users
Sin embargo, acabo de revisar los permisos configurados en la categoría y parece que nuestro grupo de moderadores fue agregado, y a
everyonese le dieron permisos dereply(responder).He eliminado estos permisos adicionales y dejé solo a
everyonecon el permiso desee(ver). ¿Quizás estos permisos “adicionales” están interfiriendo con la forma en que Discourse maneja estas categorías especiales de “espejo de lista de correo”?
En realidad, olvídalo, debo haber estado mirando otra categoría, porque los permisos para la categoría de espejo de lista de correo son los esperados: solo everyone tiene el permiso de see (ver). Dicho esto, mi observación de que las publicaciones de usuarios que no son moderadores ni están en etapa de prueba parecen ser rechazadas consistentemente.
[quote=“Moin, post:30, topic:377793”]El hecho de que el usuario no esté en fase de prueba podría ser el problema. No se comprueba si los usuarios en fase de prueba tienen permiso para publicar en la categoría, pero sí se comprueba a los usuarios registrados. Por lo tanto, si el usuario no pertenece a un grupo que tenga permiso para responder a temas en la categoría, su respuesta será rechazada porque no tiene permiso. Lo mismo se aplica a los nuevos temas y al permiso de ‘crear’.
[/quote]
Esta explicación tiene mucho sentido según lo que estoy viendo, pero si es así, este comportamiento es sin duda inesperado y confuso: los remitentes que publican en la lista de correo reflejada pero que por casualidad ya tienen una cuenta en Discourse con la dirección de correo electrónico asociada definitivamente deberían poder publicar en las categorías donde la configuración “Esta categoría refleja una lista de correo” está habilitada.
Lo que sería increíble es si Discourse pudiera persuadir/pagar a alguien del equipo de Mailman (o alguien similar) para que mejore cómo Discourse gestiona los correos electrónicos.
Tenemos pruebas que aseguran que Discourse puede recibir correo para categorías de solo lectura que reflejan una lista de correo:
Para soportar eso, las publicaciones enviadas a los espejos de listas de correo omiten algunas comprobaciones:
def create_post(options = {})
…
if sent_to_mailinglist_mirror?
options[:skip_validations] = true
options[:skip_guardian] = true
else
options[:email_spam] = is_spam?
options[:first_post_checks] = true if is_spam?
options[:email_auth_res_action] = auth_res_action
end
def sent_to_mailinglist_mirror?
@sent_to_mailinglist_mirror ||=
begin
destinations.each do |destination|
return true if destination.is_a?(Category) && destination.mailinglist_mirror?
end
false
end
end
Adivinando, algo relacionado con su configuración podría crear una condición tal que el hecho de que sea un espejo de lista de correo no se detecte. Tenga en cuenta que para omitir estas comprobaciones, el correo debe enviarse a la dirección de correo electrónico de la categoría y no a la reply_by_email_address del sitio.
Oh, eso es interesante, y parece contradecir la guía publicada aquí para configurar un espejo de lista de correo:
Suscríbase a la lista de correo utilizando su dirección de correo electrónico de Discourse (por ejemplo,
discourse@example.com).
Comprobé la dirección de correo electrónico suscrita a nuestras listas de correo en nombre de Discourse y es, de hecho, discourse@forum.torproject.org.
¿Debería estar usando una dirección de correo electrónico diferente aquí? Si es así, ¿cuál?
No, todo esto está bien.
La parte que podrías estar omitiendo es esta:
(recuerde que Discourse solo utiliza las cabeceras del mensaje (Para/CC) y no conoce la dirección de sobre)
Para la categoría tor-relays, tengo configurada la Dirección de correo electrónico entrante personalizada como tor-relays@lists.torproject.org, lo cual creo que coincide con la cabecera Para: de los correos enviados por Mailman.