"formail" en Perl

Alvaro Herrera alvherre en alvh.no-ip.org
Mar Jul 28 17:52:13 CLT 2009


Germán Póo-Caamaño escribió:
> On Tue, 2009-07-28 at 16:36 -0400, Alvaro Herrera wrote:
> > Hola,
> > 
> > Estoy trabajando en construir un sistema _bueno_ de archivos web de
> > listas de correo, para reemplazar el sistema de archivos de PostgreSQL.
> > Actualmente usamos MHonArc pero tiene varias limitaciones problemáticas
> > de las cuales ya estamos cansados.
> 
> ¿Y por qué no mejoras MHonArc? (no es que lo encuentren lindo, solo por
> curiosidad)

Porque quiero usar una aproximación totalmente diferente, que es
almacenar los mensajes en una base de datos, y porque la abstracción que
usa MHonArc no me sirve.  MHonArc no escala bien, por lo que
tradicionalmente lo que se hace es separar en mboxes mensuales y
procesar cada mes separadamente.  El problema es que si tienes un thread
largo que dura más de un mes, o bien tienes un thread que empieza los
últimos días de un mes, no hay cómo ver la relación entre los dos
subthread que quedan en meses distintos.  (Además hay un problema obvio
si alguien contesta a un mensaje meses después de que fue publicado).

El otro problema es que si hay varias listas y se hace crosspost, es muy
posible que la discusión continúe independientemente en más de una
lista, y en los archivos la discusión queda fragmentada.

Por lo tanto lo que necesito es que el sistema sea mensaje-céntrico en
vez de ser lista-céntrico (o lo que es peor lista-mes-céntrico que es lo
que tenemos hoy en día).

La verdad es que llevo meses haciendo toquecitos a MHonArc pero me
aburrí porque los problemas grandes son efectivamente insolubles.
Además he mirado el código lo suficiente para tener claro que es
tecnología de (¿principios de?) los 90.

> El encabezado Content-Type te indica el separador (boundary).  Por
> ejemplo:
>   Content-Type: multipart/mixed; boundary="----=neXtPaRt_1248109397"
> 
> Luego, cada trozo MIME se encuentra entre los límites definidos por
> boundary.  Y el fin de las partes se define con el mismo límite pero
> añadiendo dos guiones al final.  En el ejemplo:
>   ----=neXtPaRt_1248109397--

Eso tampoco funciona todo lo portablemente que uno quisiera porque hay
mensajes anteriores a que MIME fuera universal.

> Obviamente, no tiene sentido implementarlo a ese detalles cuando deben
> haber varios módulos en existencia.

Gracias por el puntero; estoy mirando Mail::Box además y parece apropos.

-- 
Alvaro Herrera                 http://www.amazon.com/gp/registry/CTMLCN8V17R4
"El miedo atento y previsor es la madre de la seguridad" (E. Burke)


Más información sobre la lista de distribución Linux