web-dev-qa-db-fra.com

La configuration de Gnu Mailutils pour opérer directement sur maildir?

J'aimerais configurer le programme de messagerie GNU Mailutils afin qu'il fonctionne sur un répertoire maildir déjà existant. Actuellement, mon mailutils.rc ressemble à ceci:

mailbox{
        mailbox-pattern "maildir:///home/${user}/Maildir";
        mailbox-type maildir;
}

Cela me permet de lire les messages de ce dossier, mais néanmoins, le programme de messagerie déplace toujours tous les messages ouverts vers /home/${user}/mbox. Y a-t-il un moyen de dire au courrier de conserver les fichiers à leur position d'origine?

6
soulsource

J'ai pu reproduire votre problème avec GNU de Mailutil's mail. Je n'ai pas trouvé de réponse directe à votre question, mais j'ai trouvé une solution à votre problème.

Je suppose que vous avez configuré votre MTA local (Exim) afin que les nouveaux messages soient remis à $HOME/Maildir/, c'est-à-dire que votre configuration Exim est définie sur dc_localdelivery='maildir_home'.

Installez heirloom-mailx qui fournit un remplacement de mailx et offre plus de fonctionnalités que la version de GNU Mailutil de mailx. Assurez-vous qu’il s’agit bien de la disposition réelle de mailx dans les options config. Habituellement, c'est parce que l'héritage a la plus haute priorité. Vous pouvez vérifier cela comme ceci:

jb@x60 ~ $ Sudo update-alternatives --config mailx
There are 2 choices for the alternative mailx (providing /usr/bin/mailx).

  Selection    Path                     Priority   Status
------------------------------------------------------------
* 0            /usr/bin/heirloom-mailx   60        auto mode
  1            /usr/bin/heirloom-mailx   60        manual mode
  2            /usr/bin/mail.mailutils   30        manual mode

Press enter to keep the current choice[*], or type selection number:

Configurez mailx avec la variable d'environnement $MAIL. Étant donné que cette configuration implique que le courrier est livré pour tous les utilisateurs à leur Maildir local respectif, je suppose que c'est la manière la plus élégante de procéder:

x60 ~ # echo 'export MAIL=$HOME/Maildir/' > /etc/profile.d/local_mailx.sh

Pas besoin de chmod 755 ce fichier, car il sera fourni par le shell de connexion. Cependant, vous devez vous déconnecter et vous connecter pour que les modifications des variables d'environnement prennent effet.

Preuve de concept:

jb@x60 ~ $ grep dc_localdelivery /etc/exim4/update-exim4.conf.conf
dc_localdelivery='maildir_home'
jb@x60 ~ $ echo $MAIL
/home/jb/Maildir/
jb@x60 ~ $ mail jb
Subject: test 
test
.
EOT
jb@x60 ~ $ mail
Heirloom mailx version 12.5 6/20/10.  Type ? for help.
"/home/jb/Maildir/": 1 message 1 new
>N  1 Jo Bo              Sun Aug 25 14:06   19/489   test
? 1
Message  1:
From jb@x60 Sun Aug 25 14:06:52 2013
Return-path: <jb@x60>
Envelope-to: jb@x60
Delivery-date: Sun, 25 Aug 2013 14:06:52 +0200
Date: Sun, 25 Aug 2013 14:06:52 +0200
To: jb@x60
Subject: test
User-Agent: Heirloom mailx 12.5 6/20/10
Content-Type: text/plain; charset=us-ascii
From: Jo Bo <jb@x60>
Status: R

test

? q
Held 1 message in /home/jb/Maildir/

Problème résolu. Reste la question: Devez-vous vous en tenir à GNU le mailx de Mailutil? J'en doute. Cela est peut-être possible avec GNU, mais comme heirloom offre un sur-ensemble de fonctions et que vous pouvez toujours utiliser d'autres outils de Mailtutils, je ne prendrais pas la peine d'investir davantage dans la recherche. heirloom est un joli logiciel. YMMV et HTH.

S'amuser!

4
Johannes