KunterBuntesSeminar-WS11/Lightning Talks/MUA
Dies ist der 7. Termin vom KunterBuntenSeminar im WS 2011/12.
Ort: Raum C-221 am Informatikum
Datum: 01. Dezember 2011
Zeit: 19:45 bis 19:50
Dieser Lightning Talk wurde in der ersten Lightning Talk Session des KunterBuntenSeminars im Wintersemester 2011 gehalten.
Using a MUA on your local linux system[Bearbeiten]
Motivation[Bearbeiten]
Die Motivation die zu diesem Vortrag führte war die Verwendung des MUA alot und seines Ökosystems. Es sollte gezeigt werden, wie so ein Aufbau auf Linuxsystemen funktioniert, wie man ein solches System konfiguriert und den ganzen Vorgang etwas entmystifizieren.
Ökosystem E-Mail[Bearbeiten]
Das System besteht aus mehreren Komponenten die miteinander arbeiten. Jeder Teil hat eine spezielle Aufgabe.
- MRA/MDA: Der Mail Retrieval Agent holt E-Mails vom Mailserver ab. Der Mail Delivery Agent speichert diese auf dem Client.
- Indexer: indiziert die E-Mails in den E-Mail-Verzeichnissen und ermöglicht die schnelle Suche nach Inhalten der E-Mails.
- Addressbook: stellt E-Mail-Adressen von Kontakten zur Verfügung.
- Tagger: kennzeichnet E-Mails mit Schlüsselworten und erstellt somit eine weitere Sicht auf die E-Mails.
- MUA: Der Mail User Agent ist der eigentliche E-Mail-Client mit dem man E-Mails erstellt und liest.
- MTA: Der Mail Transfer Agent versendet E-Mails.
vorgestellter Aufbau[Bearbeiten]
Die vorgestellte Konfiguration verwendet folgende Programme für die oben genannten Komponenten:
- MRA/MDA: offlineimap
- Indexer: notmuch
- Addressbook: notmuch
- Tagger: afew
- MUA: alot
- MTA: exim4
Das Betriebssystem ist Debian GNU/Linux.
Konfiguration der Komponenten[Bearbeiten]
Die Programme sind alle Freie Software und bei den entsprechenden Weblinks herunterladbar. Anschließend sollte die Software installiert werden. Diese Konfiguration ist nur eine mögliche Konfiguration. Einfach abtippen ohne nachzudenken ist nicht ratsam.
offlineimap[Bearbeiten]
Offlineimap nutzen wir um die E-Mails, die wir vom Mailserver herunterladen lokal in Maildirs zu speichern. Offlineimap ermöglicht E-Mails auch ohne Netzwerkverbindung zu versenden, löschen oder kennzeichnen. Offlineimap führt die Änderungen auf dem lokalen E-Mailverzeichnissen aus. Sobald wieder eine Netzwerkverbindung vorhanden ist werden die Änderungen von offlineimap an die jeweiligen Mailserver propagiert.
Zunächst richten wir uns ein Verzeichnis für unsere E-Mails ein:
mkdir -p ~/maildirs/beispiel1
Die Konfiguration geschieht in der Datei ~/.offlineimaprc. Die Datei ist in Sektionen geteilt welche mit [Klammern] gekennzeichnet sind.
[general] # hier stehen die Accounts die synchronisiert werden sollen accounts = beispielaccount1, beispielaccount2 [Account beispielaccount1] # hier stehen die Informationen zu einem Account localrepository = beispieldir1 # Sektion s.u. remoterepository = beispielimap1 # Sektion s.u. autorefresh = 2.5 # wie oft synchronisiert werden soll in Minuten # folgende Zeile kann auskommentiert werden und afew einfach wie folgt gestartet werden: afew --watch --new postsynchook = ionice -c 3 chrt --idle 0 /bin/sh -c "notmuch new && python ~/.local/bin/afew -vv --tag --new" # was nach dem Synchronisieren passieren soll [Repository beispieldir1] # hier stehen die Infos wie die E-Mails gespeichert werden type = Maildir # Typ könnte auch mbox sein localfolders = /home/user/maildirs/beispiel1/ # wo das Maildir liegt [Repository beispielimap1] # hier stehen die Infos woher offlineimap die E-Mails bekommt type = IMAP # ist viel besser als POP3 remotehost = mein_toller.serv.er remoteuser = username remotepass = passwort ssl = yes # Verschlüsselung sollte der Mailserver sprechen holdconnectionopen = yes idlefolders = ['INBOX']
Weitere Accounts können in der gleichen Datei darunter angegeben werden. Offlineimap erlaubt es, dass man mit Hilfe eines Hooks die Passwörter nicht im Klartext in der Konfigurationsdatei hinterlegen muss. Bei Interesse online in der Dokumentation nachlesen.
Offlineimap starten wir wie folgt (man offlineimap liefert weitere Ausgabeformate):
offlineimap -u BlinkenLights
notmuch[Bearbeiten]
Notmuch ist unser E-Mail-Indexer. Die Konfiguration ist sehr einfach. Dazu führen wir folgenden Befehl aus:
notmuch setup
Dann füttern wir notmuch mit den wichtigen Informationen:
Your full name: user Your primary email address: username@mein_toller.serv.er Additional email address: username@anderer.mailserv.er Additional email address [Press 'Enter' if none]: Top-level directory of your email archive [/home/user/maildirs]: Tags to apply to all new messages (separated by spaces): new
Das erstellt in unserem Homeverzeichnis die Datei ~/.notmuch-config. Wir schreiben dann noch folgendes in die letzte Zeile der Konfigurationsdatei:
synchronize_flags=true
Nun führen wir folgendes Kommando zum Initialisieren der Datenbank aus:
notmuch new
Das war es dann auch schon.
notmuch address[Bearbeiten]
notmuch hat seit Version 0.19 eine Adresssuche integriert, die wir als Vervollständigungsfunktion für Adressen verwenden können. Die Einrichtung folgt in der Konfiguration von alot.
Man tippt dazu drei aufeinanderfolgende Buchstaben eines Namens oder einer E-Mail-Adresse und erhält mit der Tabulatortaste mögliche Vervollständigungen.
afew[Bearbeiten]
Afew ist ein Werkzeug um E-Mails zu taggen. Genau dafür verwenden wir es auch.
Die Konfiguration ist in der README des Programms ausführlich beschrieben. Afew wird in ~/.config/afew/config konfiguriert.
alot[Bearbeiten]
Alot ist ein GUI für notmuch. Wir verwenden alot als Mail User Agent. Ganz im Sinne von notmuch archivieren wir E-Mails, damit unsere Inbox leer ist. E-Mail-Threads die uns stören killen wir und schreiben E-Mails mit unserem Lieblings-Texteditor.
Alot wird in ~/.config/alot/config eingerichtet. Sie ähnelt sehr der offlineimap Konfigurationsdatei. Die aktuelle Dokumentation zur Konfiguration findet sich bei Read The Docs
# gute Terminals können 256 Farben darstellen colourmode = 256 # welche Header sollen angezeigt werden? displayed_headers = From,To,Cc,Bcc,Subject # welche E-Mails sollen nach dem Start angezeigt werden. Dies ist eine notmuch Suche. initial_command = search tag:inbox AND NOT tag:killed
[accounts] [[account beispielaccount1]] # hier steht alles zu unserem E-Mail-Account realname = Echter Name address = username@mein_toller.serv.er aliases = ich@meinmein_toller.serv.er # das hier ruft exim4 auf sender_type = sendmail sendmail_command = /usr/sbin/sendmail -t # hier legen wir unsere gesendeten E-Mails ab. sent_box = maildir:///home/user/maildirs/beispiel1/INBOX.Sent # hier richten wir notmuch address ein um Adressen zu vervollständigen [[[abook]]] type = shellcommand command = "notmuch address --output=recipients date:1Y.. AND from:username@mein_toller.serv.er" regexp = (\"?(?P<name>.+)\"?)?\s*<(?P<email>.*@.+?)> shellcommand_external_filtering = False
[bindings] T = search is:todo
[[search]] t = toggletags todo
Das war es dann auch schon. Alot starten wir mit dem Befehl:
alot
exim4[Bearbeiten]
Exim4 ist bei Debian der mitgelieferte Mail Transfer Agent. Man kann auch andere MTAs wie Postfix (Standard bei Ubuntu) verwenden. Hier wird allerdings die besonders einfache Konfiguration von Exim4 erläutert.
Wir senden E-Mails über einen sogenannten Smarthost in die weite Welt. Der Smarthost ist ein Mailserver, der unsere E-Mails weiterleitet. Es kann zum Beispiel der Mailserver des Informatikums hierfür verwendet werden oder aber auch ein eigener.
Folgendes Kommando ist auszuführen:
dpkg-reconfigure exim4-config
Nun muss sich nur noch durch den Dialog getippert werden:
mail sent by smarthost; received via SMTP or fetchmail System mail name: meinrechner.org IP-addresses to listen on for incoming SMTP connections: 127.0.0.1 ; ::1 Other destinations for which mail is accepted: freilassen Machines to relay mail for: freilassen IP address or host name of the outgoing smarthost: smartho.st::587 Hide local mail name in outgoing mail? yes Visible domain name for local users: meinrechner.org Keep number of DNS-queries minimal (Dial-on-Demand)? no Delivery method for local mail: Maildir format in home directory Split configuration into small files? no
Der Port des Smarthost ist 587 (Message Submission Protokoll), weil das durch die Firewall des Informatikums geht. Will heissen, der Mailserver muss auf Port 587 lauschen. Wenn der Mailserver des Informatikums verwendet wird, sollte Port 25 verwendet werden.
Nun müssen wir dem MTA nur noch mitteilen wie wir uns gegenüber dem Smarthost authentifizieren. Das machen wir in der Datei /etc/exim4/passwd.client:
smartho.st:username:password
Anschließend statten wir die Datei mit den Rechten root:Debian-exim 0640 aus:
chown root:Debian-exim /etc/exim4/passwd.client chmod 640 /etc/exim4/passwd.client
Das war es dann auch schon. Nun sollten wir ein funktionierendes E-Mail-Ökosystem auf unserem Rechner haben.
Referent[Bearbeiten]
bjoernb: Ich bin per jabber (bjoernb@bjoernb.org) oder mail (4bewersd@inf) zu erreichen, oder ab und an im c.t..