Recherche de site Web

Comment utiliser le courrier électronique dans Emacs


Les interfaces de messagerie Web, telles que Gmail, sont souvent inefficaces et peu sécurisées. Tous nécessitent que vous soyez toujours connecté à Internet et ne prennent pas en charge des fonctionnalités telles que le marquage et le filtrage en masse. Cependant, si vous utilisez déjà Emacs pour éditer du texte, vous pouvez également l'utiliser pour gérer votre courrier électronique.

Astuce : Téléchargez notre aide-mémoire sur les raccourcis clavier Emacs pour augmenter votre productivité.

Contenu

  • Clients de messagerie modernes et Emacs
  • Emacs comme client de messagerie
  • Installation hors ligneimap et pas grand chose
  • Configuration hors ligneimap
  • Pas grand-chose à configurer
  • Afficher votre courrier électronique dans Emacs
  • Configurer Emacs pour envoyer des e-mails
  • Questions fréquemment posées

Lire aussi : Comment utiliser IRC dans Emacs avec ERC

Clients de messagerie modernes et Emacs

Bien qu'il existe des clients de messagerie hors ligne tels que Thunderbird et Evolution, ces programmes sont souvent volumineux, n'ont pas tout ce dont vous pourriez avoir besoin ou ne se combinent pas bien avec d'autres applications.

Par exemple, Evolution peut accepter le courrier électronique et votre calendrier, mais ne gère pas le traitement des documents, les groupes de discussion et les listes de tâches. Cela crée une expérience utilisateur décousue qui peut potentiellement entraîner davantage de problèmes à l’avenir.

D’un autre côté, Emacs fonctionne dans la notion d’interopérabilité. Dans Emacs, tout est accessible et manipulable via le même langage de conception. Les raccourcis clavier pour effectuer les actions de base sont les mêmes. De plus, les packages créent et génèrent également strictement du texte qui peut être utilisé comme entrée dans d'autres packages.

Par exemple, si vous utilisez gnus pour lire vos groupes de discussion et le mode Org pour gérer vos notes, vous pouvez diriger un article de groupe de discussion vers un tampon d'organisation pour l'annoter ou l'enregistrer comme source d'inspiration.

De plus, si vous utilisez EMMS pour gérer votre musique, le titre de la chanson actuelle est affiché sous forme de texte. Vous pouvez créer un lien vers un article de blog pour mettre en évidence ce que vous écoutez pendant que vous écrivez.

Lire aussi : Qu'est-ce que Doom Emacs et comment l'installer

Emacs comme client de messagerie

Emacs vous permet d'intégrer et de sauvegarder votre courrier électronique dans un tampon d'organisation pour l'annoter ou le sauvegarder en tant qu'élément de tâche dans un calendrier.

Vous pouvez également faire l'inverse : écrire un article dans un tampon d'organisation et l'envoyer, dans Emacs, par e-mail à quelqu'un.

Ceci est possible grâce à l'aide de deux programmes : Offlineimap et pas beaucoup.

  • Offlineimap est un programme d'assistance qui récupère votre courrier électronique sur un serveur distant et l'enregistre sur votre disque. Le serveur peut être soit un serveur auto-hébergé, soit un service de messagerie comme Gmail ou Protonmail.
  • Not much, en revanche, est une application extrêmement simple qui balise et affiche le courrier. Il maintient une base de données de tous les courriers que vous avez reçus et les marque en fonction de ce que vous avez défini, puis affiche ces e-mails dans Emacs en fonction de ces balises.

Lire aussi : 5 fonctionnalités cachées que vous pouvez utiliser pour améliorer Emacs

Installation hors ligneimap et pas grand chose

Pour installer ces deux applications dans Debian et Ubuntu :

sudo apt install offlineimap notmuch

Sous Arch Linux :

sudo pacman -Syu offlineimap notmuch

Dans Fedora :

sudo dnf install offlineimap notmuch

Après cela, installez le package notbeaucoup qui l'accompagne dans Emacs. Il est actuellement disponible dans le référentiel MELPA. Vous devrez peut-être d'abord l'activer dans votre configuration Emacs.

Pour ce faire, ajoutez les lignes Lisp suivantes à votre fichier init.el :

(require 'package)
(add-to-list 'package-archives
             '("melpa" . "https://melpa.org/packages/"))
(package-initialize)

Pour installer le package notmuch, appuyez sur Alt + X et tapez package-install. Emacs vous demandera le nom du package que vous souhaitez installer. Tapez « pas grand-chose ».

Une fois installé, ce package servira de frontal au programme de marquage notmuh.

Lire aussi : Comment ajouter et gérer des identités dans Thunderbird

Configuration hors ligneimap

Cela fait, vous pouvez configurer Offlineimap. Il s'agit d'un processus simple qui implique principalement un seul fichier : ".offlineimaprc".

Par défaut, ce fichier de configuration est lu depuis votre répertoire personnel. Pour le créer, exécutez la commande suivante :

touch /home/$USER/.offlineimaprc

Une fois terminé, ouvrez ce fichier à l'aide de votre éditeur de texte préféré.

La configuration pour Offlineimap est écrite au format INI. Par exemple, un .offlineimaprc pour un seul compte IMAP pourrait ressembler à ceci :

[general]
accounts = imapaccount
 
[Account imapaccount]
localrepository = thismachine
remoterepository = thatimap
 
[Repository thismachine]
type = Maildir
localfolders = /home/$USER/mail/youremail@domain.com
 
[Repository thatimap]
type = IMAP
remotehost = imap.domain.com
remoteuser = youremail@domain.com
remotepass = your_password_goes_here
ssl = yes
sslcacertfile = /your/ca/cert/path/here
  • La catégorie général indique à Offlineimap que vous définissez un seul compte pour cette installation.
  • La catégorie Compte spécifie les sources par lesquelles ce compte particulier obtient son courrier électronique, ainsi que tous les scripts que vous souhaitez exécuter lorsque Offlineimap récupère le courrier.
  • La catégorie Dépôt indiquera à Offlineimap la configuration du compte que vous essayez de configurer. Les paramètres ici dépendront en grande partie du fait que vous utilisez ou non Gmail.

Lire aussi : Comment migrer d'Evolution vers Thunderbird sous Linux

Référentiels de courrier électronique

Offlineimap fonctionne en enregistrant la structure d'un répertoire de messagerie distant sur votre ordinateur local. Cela permet au programme d'imiter un serveur IMAP distant et de permettre aux clients de messagerie tels que NotMuch de lire le courrier sans avoir besoin de se connecter.

La catégorie Référentiel diffère selon que vous configurez une boîte aux lettres locale ou distante. Pour créer une boîte aux lettres locale, il vous suffit de définir son type sur « Maildir ». Cela indiquera à Offlineimap que ce référentiel pointera vers un emplacement sur la machine locale.

[Repository thismachine]
type = Maildir
localfolders = /home/$USER/mail/youremail@domain.com

En revanche, la configuration d'un référentiel distant peut être un peu compliquée. Cependant, une fois que vous avez compris la signification de chaque valeur du fichier de configuration, la configuration à distance devrait être très simple.

Regardons à nouveau l'exemple du bloc Repository :

[Repository thatimap]
type = IMAP
remotehost = imap.domain.com
remoteuser = youremail@domain.com
remotepass = your_password_goes_here
ssl = yes
sslcacertfile = /your/ca/cert/path/here
  • Le paramètre type indique le type de serveur auquel vous souhaitez que Offlineimap se connecte. En cela, il n'y a que deux options : Gmail pour Google Mail et IMAP pour les comptes non Google.
  • Le paramètre remotehost définit l'adresse du serveur IMAP auquel Offlineimap se connecte.
  • L'utilisateur distant et le remotepass sont l'endroit où vous devez fournir vos informations d'identification d'utilisateur.
  • Définir ssl sur "oui" indiquera à Offlineimap que vous souhaitez établir une connexion cryptée au serveur IMAP.
  • L'option sslcacertfile spécifie ensuite votre certificat SSL local. Offlineimap l'utilisera pour vérifier sa connexion avec le serveur IMAP.

À lire également : 6 meilleurs conseils pour protéger la sécurité de votre compte Gmail

Connexion à Gmail

Comme décrit ci-dessus, Offlineimap propose également un type spécial de connexion aux comptes Gmail, car Google nécessite des informations supplémentaires lors de la connexion à son service de messagerie.

Pour vous connecter à Gmail via Offlineimap, il vous suffit de modifier le type de vos référentiels locaux et distants. Vous devez définir le référentiel local sur « GmailMaildir » et le référentiel distant sur « Gmail ».

Par exemple, un fichier .offlineimaprc qui se connecte à un service Gmail pourrait ressembler à ceci :

[general]
accounts = gmailaccount
 
[Account gmailaccount]
localrepository = localgmail
remoterepository = remotegmail
 
[Repository localgmail]
type = GmailMaildir
localfolders = /home/$USER/mail/youremail@gmail.com
 
[Repository remotegmail]
type = Gmail
maxconnections=1
remotehost = imap.gmail.com
remoteuser = youremail@gmail.com
remotepass = your_password_goes_here
ssl = yes
sslcacertfile = /your/ca/cert/path/here

Établir une connexion SSL

La prochaine chose à faire est de configurer Offlineimap pour se connecter via SSL. Pour ce faire, vous devez indiquer le chemin d'accès à vos certificats SSL à l'échelle du système.

L'emplacement des certificats SSL dépendra du système que vous utilisez. Cependant, dans Debian et Ubuntu, il se trouve au chemin suivant :

ls /etc/ssl/certs/ca-certificates.crt

Vous pouvez maintenant exécuter offlineimap dans le terminal pour récupérer tout le courrier de votre serveur IMAP distant.

Lire aussi : Comment gérer Git dans Emacs avec Magit

Pas grand-chose à configurer

À partir de là, passez à la configuration minimale. D'après son nom, il n'y a pas grand chose à configurer avec.

Une fois que vous avez votre répertoire IMAP, vous ne pouvez pas exécuter grand chose en ligne de commande. Cela lancera un script de configuration qui vous posera des questions sur votre configuration de messagerie spécifique.

Avec cela, rien ne créera un fichier de configuration dans votre répertoire personnel. Vous pouvez le vérifier en exécutant la commande suivante :

less /home/$USER/.notmuch-config

Définissez un certain nombre d'options qui ne vous diront pas grand-chose où trouver le nouveau courrier. Vous pouvez également définir les balises que vous ne souhaitez pas indexer lorsque peu de recherches sont effectuées dans sa base de données.

Par exemple, vous pouvez le configurer de telle sorte que NotMuch ne recherchera aucun courrier marqué comme indésirable :

[search]
exclude_tags = junk

Marquage des e-mails avec pas grand-chose

Comme vous l'avez peut-être remarqué, vous n'avez défini aucune balise de courrier électronique dans le fichier de configuration Notmuch, car les balises Notmuch envoient des e-mails directement à partir de la ligne de commande.

Cela vous permet d'être flexible quant à la façon dont vous souhaitez utiliser peu de choses. Par exemple, vous pouvez inclure une commande not much tagging dans un script exécuté périodiquement en tant que tâche cron.

Cependant, pour commencer, vous devez d'abord initialiser la base de données de NotMuch en exécutant la commande suivante :

notmuch new

Cela lira votre fichier de configuration et créera une base de données basée sur des valeurs par défaut raisonnables. À partir de là, vous pouvez désormais utiliser les commandes de marquage de NotMuch pour marquer à la fois vos e-mails entrants et existants.

Syntaxe de marquage de Notbeaucoup

La syntaxe de balisage est très intuitive et la forme générale ressemble à ceci :

notmuch tag [+|-]label header:header-property (tag:current-tag)
  • La commande tag ne dit pas grand chose que les arguments suivants seront utilisés pour créer une règle de balisage dans votre boîte aux lettres.
  • L'option label précise si vous allez ajouter une étiquette (+) ou supprimer une étiquette déjà existante (-). Par exemple, tous les courriers entrants sont marqués par défaut avec la mention « non lu ». Vous pouvez donc définir cette commande sur -unread pour supprimer la balise non lue.
  • L'option en-tête ne dit pas grand-chose pour appliquer uniquement l'étiquette en fonction de l'en-tête de l'e-mail que vous avez défini. Par exemple, vous pouvez utiliser l'en-tête « De : » pour filtrer les messages en fonction de leur origine.
  • L'option tag est un argument facultatif qui limite l'application d'une règle de balisage à une balise spécifique. Par exemple, vous pouvez le configurer de manière à ce que Not much n'applique une étiquette que si cet e-mail particulier comporte une balise non lue.

Lire aussi : Comment créer de superbes diapositives Beamer avec Emacs

Afficher votre courrier électronique dans Emacs

Vous pouvez consulter vos e-mails dans Emacs. Faites cela en appuyant sur Alt + X et en tapant pas beaucoup. Cela ne chargera pas beaucoup le package frontal dans Emacs.

L'écran de destination affichera quelques balises standard par défaut. Cependant, vous pouvez afficher vos balises personnalisées en cliquant sur le bouton « [afficher] » à côté de « Toutes les balises ». Vous pouvez également accéder à vos balises en appuyant sur S et en tapant "is:tag_name" dans le tampon de commande.

Les touches de mouvement et d'édition standard d'Emacs ne fonctionnent également pas beaucoup. De plus, de nombreuses fonctionnalités supplémentaires permettent de mieux filtrer votre courrier électronique.

Par exemple, déclenchez une vue « en arborescence » en appuyant sur Shift + Z tout en affichant une balise spécifique. Ceci est utile lorsque vous êtes abonné à une liste de diffusion car cela affiche les e-mails dans des fils de discussion faciles à suivre.

Configurer Emacs pour envoyer des e-mails

Vous disposez maintenant d'un répertoire de messagerie fonctionnel que vous pouvez lire dans Emacs. Cependant, vous devez toujours configurer un moyen d'envoyer du courrier. Heureusement, c'est étonnamment facile à faire dans Emacs.

Pour activer la prise en charge par courrier électronique, vous pouvez ajouter les lignes Lisp suivantes à votre fichier init.el :

(setq mail-user-agent 'message-user-agent)
(setq message-send-mail-function 'smtpmail-send-it
      smtpmail-stream-type 'starttls
      smtpmail-smtp-server "mail.domain.com"
      smtpmail-smtp-service 587)
  • Le mail-user-agent définit votre variable user-agent pour qu'elle utilise le message-user-agent d'Emacs. Cela identifiera vos e-mails sortants comme provenant d'Emacs, ce qui vous permettra de communiquer avec d'autres serveurs de messagerie.
  • La message-send-mail-function indique à Emacs d'utiliser le package smtpmail intégré pour envoyer correctement vos e-mails.
  • Ici, le smtpmail-stream-type indique le type de connexion que vous souhaitez qu'Emacs utilise lors de la connexion à un serveur de messagerie distant. La plupart des serveurs de messagerie utilisent actuellement SSL/TLS ou STARTTLS.
  • Le smtpmail-smtp-server définit l'adresse du serveur SMTP auquel vous souhaitez vous connecter.
  • Le smtpmail-smtp-service définit le port qu'Emacs utilisera pour envoyer des paquets SMTP. Si vous utilisez SSL/TLS, écrivez 465 comme port SMTP. Si vous utilisez STARTTLS, écrivez 587.

À lire également : Comment gérer plusieurs comptes Gmail et consulter vos e-mails en un seul endroit

Configuration de l'authentification des e-mails à l'aide de .authinfo

Vous devez autoriser Emacs à envoyer des e-mails via votre compte de messagerie. Pour ce faire, ajoutez vos informations d'identification de messagerie dans .authinfo.

Le fichier .authinfo est un fichier caché qui stocke les informations d'identification de l'utilisateur lors de la connexion aux services distants. Pour la plupart, cela ne vient pas par défaut dans votre installation Linux. Cependant, vous pouvez créer ce fichier en exécutant la commande suivante :

touch /home/$USER/.authinfo

Une chose importante à noter est que ce fichier contiendra des informations sensibles, telles que votre nom d'utilisateur et votre mot de passe. Par conséquent, vous devez sécuriser ses autorisations d’accès afin que vous seul puissiez y lire et y écrire. Pour ce faire, exécutez la commande suivante :

chmod 600 /home/$USER/.authinfo

À partir de là, modifiez le fichier .authinfo pour qu'il contienne les informations d'identification de votre compte de messagerie. La syntaxe générale du fichier .authinfo ressemble à ceci :

machine mail.domain.com login username@domain.com port 587 password mypasswordis123
  • La variable machine indique à Emacs que vous vous connectez à une autre machine ou serveur.
  • Le nom de domaine indique qu'il s'agit de l'adresse de la machine à laquelle vous souhaitez vous connecter.
  • Le champ Connexion est l'endroit où vous définirez votre adresse e-mail.
  • L'option port définit le port spécifique auquel vous souhaitez qu'Emacs se connecte. Cela devrait être similaire au numéro de port que vous avez défini dans votre fichier init.el.
  • La variable password contient le mot de passe de votre compte de messagerie.

Rechargez Emacs pour appliquer vos nouveaux paramètres.

Envoi de votre premier e-mail dans Emacs

Avec cela, il est extrêmement simple d’envoyer un email depuis Emacs. Faites-le soit en appuyant sur Ctrl + X, M ou en appuyant sur M lorsque vous êtes dans le tampon notmuch.

Ces raccourcis clavier exécuteront la commande composemail, qui créera un tampon de message avec un en-tête vide dans lequel vous pourrez saisir votre e-mail.

Une fois terminé, appuyez sur Ctrl + C, Ctrl + C pour envoyer votre premier e-mail depuis Emacs.

Toutes nos félicitations! Vous avez configuré avec succès Emacs en tant que client de messagerie. De plus, vous avez également désormais une compréhension de base du fonctionnement des serveurs IMAP et SMTP ainsi que les bases de la configuration d'un système de marquage des e-mails.

Si toutes ces discussions vous ont intéressé par ce que vous pouvez faire d'autre avec Emacs, consultez ces cinq packages utiles pour cet éditeur de texte extensible.

Lire aussi : 5 packages Emacs utiles pour une meilleure productivité

Questions fréquemment posées

1. Est-il possible de marquer automatiquement les e-mails après avoir exécuté Offlineimap ?

Pour ce faire, créez un hook peu post-synchronisation dans Offlineimap. Insérez une variable sous la catégorie Compte appelée "postsynchook" :

...
 
[Account imapaccount]
localrepository = thismachine
remoterepository = thatimap
 
postsynchook = /path/to/your/script.sh
...

Cette variable doit contenir un chemin de fichier vers un script exécutable pouvant contenir vos commandes notmuch pour définir vos balises.

Par exemple, il s'agit d'un simple script de post-synchronisation qui supprime la balise non lue des e-mails entrants de la liste de diffusion et les balise de manière appropriée :

#!/bin/sh
 
notmuch new
 
notmuch tag -inbox -unread +mailing-list from:mailing-list or to:mailing-list@domain.com tag:inbox
notmuch tag -inbox -unread +mailinglist-cmd from:mailing-list-cmd@domain.com tag:inbox

2. J'ai écrit un e-mail mais j'ai décidé de ne pas l'envoyer. Comment puis-je supprimer un e-mail dans Emacs ?

Vous pouvez supprimer un e-mail dans Emacs en appuyant sur Ctrl + C, Ctrl + D dans le tampon de message. Cela marquera votre e-mail comme brouillon rejeté et Emacs le supprimera après un certain temps.

3. Est-il possible de modifier beaucoup les balises de courrier électronique dans Emacs ?

Oui! Faites cela en appuyant sur Shift + = à l'intérieur du tampon not much. Cela ouvre un petit tampon de commandes dans lequel vous pouvez indiquer les balises que vous souhaitez ajouter ou supprimer d'un e-mail particulier.

Articles connexes