Migrar una lista de correo a Discourse (mbox, Listserv, Google Groups, etc)

Logré realizar una Google Takeout de mis grupos de Google, subir los archivos .mbox e importarlos.

Estos pasos fueron útiles para mapear data/folder a una categoría existente, pero esto debe hacerse en el contenedor import, no en el contenedor app como se indica en este artículo:

./launcher enter import
rails c

# Usa el ID de categoría mostrado en la URL, por ejemplo
# es 16 cuando la ruta de la categoría se ve así: /c/soccer/16
category = Category.find(16)

# Usa el nombre del directorio donde se almacenan los archivos mbox. Por ejemplo,
# cuando los archivos están en import/data/foo, debes usar "foo" como nombre del directorio.
category.custom_fields["import_id"] = "soccer"
category.save!

Ya tengo usuarios en Discourse que se migraron por sí mismos, por lo que el script de importación no pudo crear contactos para ellos (probablemente no sea algo malo), pero los mensajes importados en los que participaron estos usuarios existentes de Discourse muestran al remitente como system en lugar de su nombre.

¿Existe alguna forma de hacer que se mapeen los usuarios existentes a sus mensajes importados?

Por ahora, deshice todo recuperándome de una copia de seguridad reciente. Estoy listo para intentarlo de nuevo con alguna orientación sobre cómo manejar los usuarios existentes de Discourse y sus mensajes importados.

Actualización:

Claude ayudó a resolver el mapeo de usuarios existentes; es necesario ejecutar este bucle en la consola de Rails, además del fragmento anterior:

User.where("id > 0").find_each do |u|
  email = u.email.downcase
  unless u.custom_fields["import_id"].present?
    u.custom_fields["import_id"] = email
    u.save_custom_fields
  end
end