💾 Archived View for rawtext.club › ~guyotv › articles › lignedecommande › commentreleversesmailsenli… captured on 2023-09-28 at 17:43:09. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2021-12-03)

-=-=-=-=-=-=-

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.


    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.

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

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.

Il faut aussi bien comprendre que la distribution de chaque message ne se fait qu’une seule fois, à l’instar d’une lettre. Ainsi, un message adressé simultanément à trois boites aux lettres sera posté dans celle correspondant à la première règle vérifiée et pas dans les suivantes.

Pour tester procmail, on utilise le même code que précédemment :


    fetchmail -akv -m "/usr/bin/procmail -d %T

où on a ajouté l’option -a (all) pour rapatrier tous les messages.

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.

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.

Impression

FInalement, il reste à configurer l’impression. Dans l’esprit de la ligne de commande, il ne faudrait pas utiliser CUPS. Mais en fait, CUPS fournit la commande :


lp

pour les demandes d’impression. La gestion des imprimantes se faisant classiquement via un navigateur sur localhost:631. Pour imprimer facilement, on peut avoir recours à l’utilitaire muttprint à installer classiquement par un apt-get. Il faut ensuite copier le fichier /etc/Muttprintrc dans ~/.muttprintrc pour écraser la configuration générale et demander à mutt d’utiliser muttprint en plaçant :


set print_command="muttprint"

dans le fichier de configuration de mutt : ~/.muttrc

Puis, dans le fichier de configuration de muttprint ~/.muttprintrc, il faut spécifier la commande lp à lancer en remplaçant lpr par lb dans :


# PRINT_COMMAND="lpr"
PRINT_COMMAND="lp"

Enfin, pour imprimer un mail, il suffit alors de presser la touche <p> dans le pager ou l’index.