💾 Archived View for rawtext.club › ~guyotv › articles › lignedecommande › commentreleversesmailsenli… captured on 2022-06-03 at 22:55:22. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2021-12-03)
-=-=-=-=-=-=-
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.
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.
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.