Lista negra de correo electrónico: pregunta sobre eliminación/desactivación masiva

Una vez que los dominios están en la lista negra, las cuentas que ya han pasado el proceso no se ven afectadas y siguen siendo utilizables.

Quisiera preguntar si alguien conoce una forma de destruir masivamente (eliminar usuario y todo su contenido), suspender o silenciar usuarios basándose en el dominio de su correo de registro.

En mi caso, esto permitiría eliminar/deshabilitar cientos de miles de cuentas que utilizaron la técnica de dominio catchall para registrarse.

¿Se trató de datos migrados? Eliminar tantas cuentas será muy, muy doloroso, a menos que casi todas carezcan de contenido.

Puedes hacerlo desde la consola de Rails, pero suena como si pudiera ser muy desordenado.

@codinghorror - No son datos migrados. No me importa que sea doloroso y lento, ya que la alternativa de permitir que las cuentas permanezcan probablemente sea peor :hot_face: En cuanto a la cantidad de contenido, es una mezcla: algunos no tienen ninguno (por lo general, los spammers planean usar estas cuentas más adelante), algunos tienen muy poco y otros tienen montones.

@pfaffman ¡Genial! ¿Sabes cómo? Jaja :pray:

¿Has pensado en anonimizar a los usuarios?

@fzngagan Esa podría ser una solución sólida. ¿Sabes si hay alguna manera de hacer esto en masa?

Sí. Se puede hacer desde la consola de Rails. Pero la pregunta es, ¿con qué criterios quieres anonimizarlos?

@fzngagan ¡Genial! El criterio sería: todos los correos electrónicos que utilicen un dominio específico en su dirección de registro. Por ejemplo: ejemplo@blacklisted.com, ejemplo2@blacklisted.com

En la consola de Rails, escribe estos comandos y verifica si dan los resultados esperados (reemplaza el patrón de tu correo electrónico con ‘@gmail.com’)

idlist = UserEmail.where("email like '%@gmail.com'").pluck(:user_id)
users = User.find(idlist)

luego (procede con precaución)

system_user = Discourse.system_user
users.each do |user|
  UserAnonymizer.new(user, system_user).make_anonymous
end

No soy un experto en temas de rendimiento, por lo que no sé exactamente qué sucedería si el número de usuarios es grande.

@fzngagan ¡Qué genial, muchas gracias! :slight_smile: Lo aprecio mucho.

Me aseguraré de que todo esté respaldado recientemente antes de probar esto.

Una pregunta rápida: ¿sabes si es posible silenciar en masa a los usuarios (de forma permanente) usando esta técnica?

Sí. La consola de Rails puede hacer casi todo lo que se puede hacer desde el código.