Type ahead der Mailadressen in Mutt

Ich versuche gerade auf den Terminal Mail Client mutt umzusteigen. Ein Problem was man schnell hat sind die fehlenden Mailaddressen. Eine Möglichkeit ist die Nutzung der Funktion “alias”. Anhand dieses Beitrages konnte ich mir das aber schön bauen.

Zuerst brauchen wir ein Script das eine Mail nimmt, die Adressen ausliest und in eine alias Datei schreibt


vi .config/mutt/create-alias.sh

#!/bin/sh

MESSAGE=$(cat)

NEWALIAS=$(echo "${MESSAGE}" | grep ^"From: " | sed s/[\,\"\']//g | awk '{$1=""; if (NF == 3) {print "alias" $0;} else if (NF == 2) {print "alias" $0 $0;} else if (NF > 3) {print "alias", tolower($(NF-1))"-"tolower($2) $0;}}')

if grep -Fxq "$NEWALIAS" $HOME/.config/mutt/aliases.txt; then
     :
  else
     echo "$NEWALIAS" >> $HOME/.config/mutt/aliases.txt
  fi

echo "${MESSAGE}" 

chmod +x .config/mutt/create-alias.sh 

Dann sagen wir mutt das es dieses Script aufrufen soll wenn eine Mail angezeigt wird.

vi .config/mutt/muttrc
   set alias_file=~/.config/mutt/aliases.txt
   source ~/.config/mutt/aliases.txt
   set display_filter="~/.config/mutt/create-alias.sh"

Jetzt können wir beim erstellen einer Mail bei der Frage nach “To:” auf Tab drücken und bekommen eine Lister aller Mailadressen die uns in letzter Zeit eine Mail gesendet haben