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.
    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.

  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.

 

1. Pourquoi relever ses mails en ligne de commande

Un moine tibétain de quelque 70 ans s’est dit un jour : «construire des routes, cela je n’avais jamais fait, je ne sais pas faire, j’ai donc décidé de le faire». Il a donc vendu ses terres pour acheter une pelle-mécanique et a construit une route de plusieurs kilomètres pour le bien de sa communauté. Pour celle-ci, le déplacement à cheval est lent et la route permet la civilisation. La civilisation du treck, la civilisation des touristes «qui amènent les déchets plastiques et détruisent les fleurs» selon une occidentale.

La curiosité n’est pas un vilain défaut, la facilité oui. Pendant la construction de sa route, le moine voit un cycliste qui pousse péniblement son vélo dans les cailloux. Il a de la peine pour lui, car «il n’apprend rien, il est juste venu pour faire un voyage». Alors qu’avec sa route, «il y a des voitures qui vont arriver», dit avec bonheur une habitante du bout de celle-ci. Mais pour un autre, la route apportera pollution et maladies … La route ouverte, un autre encore est fière de pouvoir dire qu’elle peut  maintenant vendre aux enfants de petites pelles-mécaniques en plastiques. «Mais le progrès ne s’arrête pas là, des panneaux solaires ont pu être amenés, c’était impensable sans la route» et le moine conclut, «j’ai pu le faire, j’espère que d’autre comprendrons qu’il le peuvent aussi».

Celle qui va tout changer, « Inde du Nord, une route pour Kargyak », France5, documentaire 2017.

Alors pourquoi un maileur en ligne de commande ? Pourquoi un navigateur en ligne de commande ? Pourquoi un navigateur de fichier en ligne de commande ?

Simplement parce que la solution de facilité ne nous apprends rien et que le moine à tort, la pelle-mécanique n’apporte pas le bonheur. Il a tort aussi d’avoir pitié d’un cycliste dont le chemin de croix à travers les rochers est le même que le sien sans l’illusion de ce qu’il va apporter. Mais peut-on lui donner tort de parcourir son propre chemin, celui d’une route dont la vertu civilisatrice ne sera pas celle qu’il attend ?

Envoyer ses mails en ligne de commande, c’est parcourir un chemin sans espoir, pour le seul bonheur d’apprendre que la route est longue, qu’elle est plus longue qu’on le pense et qu’elle est un vrai bonheur.

Omeka en français

Un problème récurent avec la galerie de documents Omeka, c’est qu’à chaque mise-à-jour on revient à l’anglais. De plus, au niveau du tableau de bord, on ne peut directement gérer les langues de l’interface.

Ce petit billet est donc là pour rappeler qu’il faut simplement agir sur le fichier de configuration d’Omeka, qui se trouve être le fichier omeka/application/config/config.ini, pour en changer la locale :

locale.name = « fr »

tous simplement.

Raspberrypi : un cadre de photos

À l’aide de l’écran (tactile) officiel de raspberrypi, il est très simple de réaliser un petit cadre photo dont les images affichées résident sur un serveur distant. L’article dont je me suis inspiré est http://www.framboise314.fr/un-cadre-photo-avec-le-raspberry-pi/

Les paquets nécessaires sont :

apt-get install cifs-utils qiv pqiv

pqiv est semble-t-il une réécriture de qiv en python, dispose d’une interface graphique minimale et est en GPLv3 ; sxiv dispose aussi d’une interface graphique, semble être écrit en C, mais est en GPLv2. Pour ce projet sur raspberry, visiblement pqiv aurait été le meilleur choix. Je vais donc présenter les codes pour qiv et pqiv.

Pour le montage, je ne détaillerai pas plus qu’en précisant la commande :

sudo mount -t cifs -o username=... //serveur/photos/cadre /home/pi/cadre/

Pour le lancement du diaporama on a des options et le chemin du répertoire où sont montées les images :

qiv -f -R -S -n -s -r -d 10 -l -u -t -i -m /home/pi/cadre/

Les options choisies ici sont :

  • plein écran (–fullscreen -f),
  • lecture seule (–readonly -R),
  • mélange (-shuffle -S),
  • désactivation du filtre par extension (comme jpg, png, …) (–no_filter -n),
  • démarrage automatique de la présentation (-slide -s),
  • aléatoire (–random -r),
  • temporisé à 10 secondes (–delay -d),
  • rotation automatique (– autorotate -l),
  • sous-répertoires compris (–recursivedir -u),
  • mise à l’échelle de l’écran (si trop grand) (–scale_down -t),
  • sans barre d’état (–no_statusbar -i) et
  • mise à l’échelle de l’écran (si trop petit) (–maxpect -m).

Relevez que la barre d’état ne permet pas de changer de diapositives et n’affiche que des renseignements sur l’image.

Pour pqiv, les options sont les suivantes :

pqiv -f -s --shuffle -d 10 -F -t -i /home/pi/cadre/

avec les options :

  • plein écran (–fullscreen -f),
  • démarrage automatique de la présentation (–slideshow -s),
  • mélange aléatoire des images (–shuffle),
  • temporisé à 10 secondes (–slideshow-interval=n -d),
  • transitions douces (–fade -F),
  • mise à l’échelle (–scale-images-up -t),
  • sans barre d’état (–hide-info-box -i).

Il faut relever qu’avec pqiv les images présentés paraissent plus lumineuses et qu’en mode fenêtre, il est possible de rendre la bordure transparente (composite nécessaire !), ce qui devrait permettre d’afficher des images sur le fond d’écran à l’instar de conky. Par contre, malgré un raspberry ou l’économiseur d’écran est désactivée (avec la méthode précisée ici), avec pqiv l’écran devient noir au bout d’un certain temps, ce qui ne se produit pas avec qiv. Le problème peut être corrigé en installant le paquet xscreensaver, en lançant le démon éponyme et en le désactivant par son interface graphique.

D’autre options intéressantes sont présentes avec pqiv, comme une relecture automatique du répertoire permettant de prendre automatiquement en compte de nouvelles images. Mais je n’ai pas testé !

Raspberrypi : désactivation de la mise en veille de l’écran

Je reprends ici l’excellent post suivant :

http://framboisepi.fr/desactiver-la-veille-decran/

et le réécris pour mémoire.

Normalement le paquet

x11-xserver-utils

devrait être installé sur votre raspberry (stretch). Pour savoir si c’est le cas :

apt search x11-xserver-utils

Si ce n’est pas le cas, installez-le. Si c’est le cas, il faut ensuite modifier le fichier :

/etc/xdg/lxsession/LXDE/autostart

en retirant la ligne :

@xscreensaver -no-splash

et en ajoutant :

@xset s off
@xset -dpms
@xset s noblank

Finalement, il faut redémarrer le raspberry.

Pour terminer, voici la référence à une discussion technique très intéressante sur la désactivation de la mise-en-veille par écran noir qui peut dans certains cas se produire malgré la réalisation des opérations ci-dessus :

https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=18200

Raspbian : mise-à-jour jessie vers stretch

La mise-à-jour de rasbian sans réinstallation de tout le système est possible de jessie vers stretch.

Avant toute chose :

  1. faites une mise-à-jour de jessie soit en ligne de commande avec :
    apt-get update suivi de apt-get upgrade

    soit à partir de synaptic avec « Recharger », « Tout mettre à niveau » et « Appliquer ».

  2. faite une copie de votre carte SD avec SD Card Copier du menu Accessoires.

Puis, il est nécessaire de remplacer toutes les occurences de jessie par stretch dans les deux fichiers /etc/apt/sources.list et /etc/apt/sources.list.d/raspi.list. Pour cela, vous pouvez soit utiliser un éditeur de texte comme vi, soit le faire directement via synaptic via les « Dépôts » du menu « Configuration » où en changeant toutes les occurences de jessie en stretch vous agirez sur les deux fichiers « sources.list » et « raspi.list » simultanément.

Réalisez ensuite le rafraîchissement de la liste des paquets vers stretch par :

apt-get update

et effectuez la mise-à-jour avec :

apt-get -y dist-upgrade

(sous Debian, un simple upgrade après update réaliserait une mise-à-jour partielle moins risquée si on a peu de mémoire ou des paquets problèmatiques. Cela permet de gérer manuellement les problèmes avant une mise-à-jour complète avec dist-upgrade ; qu’en est-il sous raspbian, je n ‘ai pas testé !)

Référence : https://www.framboise314.fr/raspbian-stretch-pour-le-raspberry-pi-est-disponible/

Remarque : chez moi, la connexion distante en rdp ne fonctionne plus après mis-à-jour. Ce jour je n’ai pas trouvé de solution. Le reste est parfaitement fonctionnel.