Tengo aproximadamente 1000 publicaciones que fallan en una importación y, creo, el error principal es “Failed to map post” (Error al mapear la publicación), como en:
Tengo 28 años de publicaciones, con una carpeta para cada año y un archivo mbox para cada mes. Hay 66909 mensajes en los archivos mbox. La importación muestra 65895. ¿Se debe la diferencia de 1014 a los fallos indicados en la salida de la importación?
Las publicaciones se convirtieron de archivos mbx de Eudora a archivos mbox estándar con Aid4Mail.
Para el error “Parent message doesn’t exist” (El mensaje principal no existe) veo 421 instancias.
Para el error “Failed to map post” (Error al mapear la publicación) veo 149 instancias.
Mi expresión regular de división (split_regex) es “^From .@. [0-9]{4}”, que parece adecuada para encabezados como:
Vi el mismo error la semana pasada mientras trabajaba en un problema diferente. Voy a solucionarlo esta semana y publicaré una actualización aquí una vez que esté arreglado.
Esos son solo advertencias y probablemente aparecen debido a los errores de “No se pudo mapear la publicación”. Ocurre cuando un mensaje hace referencia a una publicación que no existe. Estoy bastante seguro de que solucionar el otro problema arreglará la mayoría, si no todas, de estas advertencias.
Puedes echar un vistazo a index.db, el archivo que crea el script de importación. Es una base de datos SQLite3. Puedes ejecutar la siguiente consulta para ver con qué está trabajando el analizador. Selecciona los mensajes de los dos Message-ID que publicaste.
SELECT *
FROM email
WHERE msg_id IN ('bbe76bf7a9cab5a2ec2a06e6ef453555', '23a86e52-71ba-7435-1c9c-c4f2a134b90d@mmtaylor.net')
Supongo que las columnas email_date y raw_message serán las más interesantes para ti. Quizás puedas encontrar qué está confundiendo al analizador de correos…
Para el primero, la fecha es nula y veo que no hay fecha para ese mensaje en el mbx. Observo que la respuesta (con :Re) aparece antes del mensaje “inicial”, por lo que pensé que la fecha no estaba ausente. ¿La importación toma los mensajes padres como los primeros en el archivo con ese asunto?
¿La fecha del correo se toma de la línea “Date:”, como en este ejemplo?
Date: Wed, 25 Mar 1992 12:23:00 GMT
Voy a ver si puedo reparar aquellos con fechas faltantes.
No, utiliza las cabeceras In-Reply-To y References para emparejar y ordenar por Message-ID, a menos que hayas cambiado la configuración group_messages_by_subject del importador a true.
Sí.
Mi mejor suposición es que hay un problema con uno de los archivos adjuntos. ¿Quizás la extensión del archivo no está permitida?
Sí, configuré la opción group_messages_by_subject a true, ya que sin ella no había ningún agrupamiento.
Ese mensaje tiene dos imágenes en línea:
Content-Type: application/octet-stream;
name=“Conflict (was … long live Wil”
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename=“Conflict (was … long live Wil”
Sí, eso funciona. Yo hice lo mismo en el pasado. Te recomiendo establecer index_only en true en settings.yml, para que no comience a importar inmediatamente después de indexar los mensajes. Puedes realizar todos los cambios necesarios en la base de datos una vez que la indexación haya finalizado. Luego, cambia index_only a false nuevamente y reinicia la importación.
Creo que estoy malinterpretando algo. ¿Acaso la indexación no ya se ha realizado, dado que index.db ya está construido?
He transferido index.db a mi escritorio. Pensaba actualizar las fechas, luego transferir index.db de nuevo al servidor y ejecutar la importación otra vez. ¿Eso no es correcto?
Decidí optar por editar los archivos mbox, agregando una línea “Date”, por ejemplo: “Date: Wed, 25 Mar 1992 17:43:06”. Transferí los archivos actualizados y ejecuté la importación de nuevo, dos veces. Sin embargo, el campo email_date no se actualizó.