2. Comment relever ses mails en ligne de commande

Installation

Avec un client graphique conventionnel, récupérer le courrier, le trier dans des boites aux lettres, l’afficher et l’envoyer sont toutes des opérations directement prise en charge par le client.

Avec le client en ligne de commande Mutt, ce n’est pas le cas. Il est donc nécessaire de lui adjoindre les logiciels fetchmail, pour récupérer les mails, procmail pour les filtrer dans les boites aux lettres et msmtp, pour l’envoyer.

La première étape consiste donc à installer ce logiciels par :

apt-get install fetchmail procmail mutt msmtp

Une fois installé, il faut chacun les configurer.

  1. Fetchmail sert donc à rapatrier le courrier sur l’ordinateur. Son fichier de configuration est ~/.fetchmailrc, fichier caché dans le répertoire utilisateur. S’il n’existe pas, il faut le créer.
    Il contient les informations suivantes :
    poll mail.mon.domaine
      protocol pop3
      user utilisateur (adresse mail)
      password motdepasse
    poll mail.mon.domaine
    protocol pop3
    user autre_utilisateur (une autre adresse mail)
    password autre_motdepasse

    Aucune indication de cryptage n’est mentionnée, car fetchmail va tenter de se connecter avec STARTTLS par défaut.
    Pour tester fetchmail, il faut utiliser la commande :

    fetchmail -k -v -m "/usr/bin/procmail -d %T"

    où les options sont les suivantes :
    – k : pour ne pas effacer les messages du serveur (keep),
    – v : pour rendre fetchmail verbeux,
    – m : pour désigner le MDA (Mail Delivery Agent : le facteur), ici procmail.

  2. Procmail sert à filtrer le courrier et le répartir dans les boites aux lettres. Son fichier de configuration est ~/.procmailrc, fichier caché dans le répertoire utilisateur.
    Il contient les informations suivantes :
    MAILDIR=$HOME/Mail                
    LOGFILE=$HOME/.procmaillog
    LOGABSTRACT=no
    #VERBOSE=on (Est utilisé uniquement pour le débogage.)
    VERBOSE=off
    DEFAULT=$MAILDIR/inbox
    # Mettre les spam à la poubelle.
    :0
    * ^Subject:.*(credit|cadeau|cash|money|debt|sex|sale|loan|spam)
    $MAILDIR/Spam
    # Élimine les messages HTML.
    :0
    * ^Content-Type:.*html
    $MAILDIR/Junk
    # Boite aux lettres pour une autre adresse email
    :0
    * ^TOautre@adresse\.mail
    $MAILDIR/autrerepertoire # Tout ce qui n'est pas trié va dans la boîte par défaut. :0 * .* $DEFAULT

    On comprend bien le rôle de procmail dans le tri des messages et leur orientation vers les différentes boites aux lettres.
    Relevons cependant que pour diriger les mails d’une autre adresse email dans un répertoire nommé « autrerepertoire », il faut utiliser l’instruction « TO » telle qu’écrite ci-dessus, soit sans espace entre le TO et l’adresse et avec un backslash avant chaque point.

  3. Pour tester procmail, on utilise le même code que précédemment :
    fetchmail -akv -m "/usr/bin/procmail -d %T
  4. où on a ajouté l’option -a (all) pour rapatrier tous les messages.

  5. Mutt sert à lire et à configurer le courrier. Son fichier de configuration est ~/.muttrc, fichier caché dans le répertoire utilisateur.
    Il contient beaucoup d’informations. J’ai repris pour mon compte le fichier donné dans l’excellent article sur lequel je me suis basé pour installer mon maileur : https://debian-facile.org/doc:reseau:mutt.
    Je l’ai ensuite modifié pour mon adresse mail personnelle et pour que mes mails apparaissent triés par date la plus récente en haut. Pour cela, j’ai changé la directive :
    folder-hook . set sort=threads

    par :

    folder-hook . set sort=reverse-date-received

    Puis, de même pour le répertoire « sent » :

    folder-hook "sent" set sort=reverse-date-received

    Finalement, pour tester mutt, il suffit d’utiliser la commande :

    mutt -y

    dont l’option -y permet de lancer mutt avec la liste des boites mail.

  6. Configuration des mails sortants (SMTP).
    Reste donc à permettre l’envoi des mails. Pour cela, on va utiliser msmtp, dont le fichier de configuration est ~/.msmtprc, fichier caché dans le répertoire utilisateur.
    Il contient les informations suivantes :
    account default
    host serveursortant
    from votreadressemail
    # Consultez la page man pour plus de détails sur les options d'authentification.
    auth login
    user nomdutilisateur
    password votremotdepasse
    # Si votre serveur SMTP supporte le cryptage TLS, décommentez la ligne suivante.
    tls
    tls_certcheck off
    tls_starttls off

    account autrerepertoire : default
    from autre@adresse.mail

    Pour tester, envoyez-vous un mail.
    La dernière partie sert à envoyer un mail pour une autre adresse mais via le serveur SMTP par défaut. Attention, dans mutt, il faut changer l’adresse par défaut du FROM par l’autre adresse.

Voilà, normalement vous devriez pouvoir disposer d’un maileur en mode texte fonctionnel.

Mais il faut lancer successivement fetchmail, procmail et mutt. Pour le faire automatiquement pour les deux premiers, on peut définir un alias dans le fichier de configuration de votre bash : pour moi ~/.zshrc :

alias fetchmail="fetchmail -k -v --ssl -m \"/usr/bin/procmail -d %T\""

et lancer ensuite mutt par : mutt -y.

Migration

Si vous voulez transférer votre système de relevé des mails d’un ordinateur à l’autre, il suffit d’installer les logiciels décrits ci-dessus : fetchmail procmail mutt msmtp, puis de copier leur fichiers de configuration respectifs ~/.fetchmailrc, ~/.procmailrc, ~/.muttrc et ~./msmtprc et enfin de copier le répertoire contenant les messages ~/Mails.

Enfin, n’oubliez pas de replacer votre alias dans ~/.bash_aliases :

alias mails='fetchmail -kv -m "/usr/bin/procmail -d %T" & mutt -y '

Ici l’alias permet de lancer tout automatiquement. Les messages sont alors relevés et il faut appuyer sur enter pour accéder à mutt. On verra dans un autre article comment l’utiliser.

Laisser une réponse