Table of Contents
Gestione posta con Maildir
NOTA: Queste note risalgono al 19 Ott 2004, bisognerebbe verificarne la validità con le nuove versioni Debian GNU/Linux.
Variabile d'ambiente MAIL
Accedendo via telnet e via ssh viene eseguito il modulo pam_mail.so
che stampa il messaggio “You have new mail” e imposta la variabile MAIL
. Per modificare il default (/var/mail/<username>
) si modificano i file /etc/pam.d/login
e /etc/pam.d/ssh modificando
come segue:
session optional pam_mail.so standard noenv session optional pam_mail.so standard dir=~/Maildir
Purtroppo il modulo PAM non viene utilizzato durante su(1)
, forse si potrebbe modificare /etc/pam.d/su
.
Variabile d'ambiente MAILDIR
In /etc/login.defs
si imposta QMAIL_DIR Maildir/
in modo che al login venga impostata la variabile MAILDIR=~/Maildir
. Purtroppo login.defs non viene utilizzato sshd(8), ma solo da login(1) quando si entra via telnet e da su(1). Inoltre la variabile MAILDIR viene ignorata ad esempio da mutt.
MAIL e MAILDIR in un colpo solo
Visti i risultati deludenti di cui sopra, conviene impostare le due variabili direttamente in /etc/profile
.
Mutt
Per convincere mutt a leggere la posta dalla maildir basta avere la variabile d'ambiente MAIL=~/Maildir
. L'opzione set mbox_type=Maildir
in .muttrc
pare superflua.
POP3 e IMAP
Il server POP3 deve essere compatibile con Maildir, installato pertanto courier-pop. Pare che l'installazione di default vada bene. Eventualmente per creare la gerarchia ~/Maildir/ senza dover inviare una mail all'utente, è sufficiente far girare a nome dell'utente il comando maildirmake Maildir
.
Anche il server IMAP deve essere compatibile Maildir. Installato courier-imap. Anche in questo caso pare che le impostazioni di default siano piu' che adeguate.
Sono state installate anche le versioni SSL dei due pacchetti.
Conversione da Maildir a mbox
In generale capita di fare il passaggio dal vecchio formato mbox (unico file per tutti i messaggi di una cartella) al più moderno Maildir (una cartella in cui ogni messaggio è un file). Tuttavia potrebbe essere necessario fare il contrario, ad esempio per importare una Maildir come posta locale di un client Thunderbird.
È possibile in questo caso utilizzare mutt
con una sola riga di comando:
mutt -f "/backup/mail/.Sent/" \ -e 'set mbox_type=mbox; set confirmcreate=no; set delete=no; push "T.*<enter>;sSent<enter><quit>"'
In questo esempio si esporta la Maildir archiviata in /backup/mail/.Sent/
nel file Sent
(relativo alla directory corrente). In pratica mutt viene invocato indicando quale mailbox caricare, si impostano alcuni parametri tra cui il formato preferito mbox e infine si lancia una macro che ha il seguente significato:
T.* | Seleziona tutti i messaggi della mailbox corrente. |
---|---|
;s | Relativamente a tutta la selezione, salva in altra cartella (mbox). |
Sent | Nome del file mbox da creare. |
Un'altra ricetta usa il comando formail
installato dal pacchetto procmail, ecco un esempio da Maildir di Evolution a mbox di Thunderbird (Icedove in Debian):
#!/bin/sh MAILDIR="$HOME/.local/share/evolution/mail/local/.Archiviate.2013" MBOX="$HOME/.icedove/kg2aldhe.default/Mail/Local Folders/Archiviate.sbd/2013" echo "Input Maildir: $MAILDIR" echo "Output mbox: $MBOX" for file in `find "$MAILDIR"/cur -type f`; do cat $file | formail -A Date: >> "$MBOX" done