Maildir
# Maildir

Maildir es un formato de spool de correo electrónico que no bloquea los ficheros para mantener la integridad del mensaje, porque los mensajes se almacenan en ficheros distintos con nombres únicos. Maildir es un directorio (usualmente llamado Maildir) con tres subdirectorios llamados tmp, new, y cur. Todos los subdirectorios deben residir en el mismo sistema de archivos.

## Funcionamiento

El proceso que reparte un correo lo guarda en un fichero con un nombre único en el directorio tmp. El nombre del fichero puede ser casi cualquier serie de caracteres (excepto la coma), pero una implementación típica podría usar la hora actual en segundos, el nombre de equipo, el identificador de proceso y algunos números aleatorios.

Cuando el proceso de reparto consigue almacenar el mensaje en tmp se enlaza desde el directorio new y después se desenlaza el fichero en tmp. De esta manera se evita que el cliente de correo electrónico lea un mensaje parcial mientras se está repartiendo.

Cuando el cliente de correo electrónico encuentra un mensaje en el directorio new, lo mueve a cur (usando la misma estrategia primero enlaza, después desenlaza) y le añade al nombre del fichero un sufijo informativo antes de leerlo. El sufijo informativo consiste en dos puntos (para separar el nombre único del fichero de la información siguiente), un '2', una coma y varios indicadores. El '2' especifica la versión de la información que sigue a la coma. La versión actual oficial es la '2', ya que la '1' fue una versión experimental. Aparentemente se usó durante el desarrollo de Maildir.

## Bloqueo de archivos

Aunque Maildir se diseñó con la idea de no bloquear archivos, no es completamente fiable en accesos concurrentes si no existe bloqueo. El problema es que si cambia Maildir a la vez que otro proceso está obteniendo el listado de ficheros, algunos de ellos puede que no sean procesados por la llamada readdir, lo que provoca que el correo se pierda temporalmente. Es por esto que algunos programas que soportan Maildir, como Dovecot, usan su propio sistema de bloqueo de archivos con Maildir.

## Maildir++

Maildir++ es una ampliación del formato Maildir. Además de la estructura normal de Maldir descrita anteriormente, los directorios Maildir++ contienen subdirectorios con nombres que empiezan por un '.' (punto) que también son directorios Maildir++.

## Programas que soportan Maildir

### Servidores de correo

* BincIMAP, un servidor IMAP que trabaja exclusivamente con Maildir
* Courier IMAP, los inventores del formato Maildir++
* Dovecot servidor IMAP
* Exim
* OfflineIMAP proporciona sincronización entre servidores IMAP y carpetas locales de Maildir
* Postfix
* QMail, los inventores del formato Maildir

### Repartidores de correo

* Procmail
* Safecat, proporciona un script llamado maildir para usarlo en tuberías

### Lectores de correo

* KMail
* Mutt y Mutt-ng
* Evolution
* Sylpheed usando el plugin Maildir https://web.archive.org/web/20060702161440/http://claws.sylpheed.org/plugins.php

El estándar Maildir no se puede implementar en sistemas con Microsoft Windows, pues no tolera la inclusión de los dos puntos en los nombres de archivo.

