NOTA: Queste note risalgono al 19 Ott 2004, bisognerebbe verificarne la validità con le nuove versioni Debian GNU/Linux.
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
.
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.
Visti i risultati deludenti di cui sopra, conviene impostare le due variabili direttamente in /etc/profile
.
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.
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.
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