====== 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/**'') 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.*;sSent"' 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