KunterBuntesSeminar-WS11/Lightning Talks/MUA: Unterschied zwischen den Versionen

Aus Fachschaft_Informatik
Zur Navigation springen Zur Suche springen
(→‎offlineimap: afew kann nun per inotify nach neuen E-Mails schauen.)
(Umlaute)
Zeile 8: Zeile 8:
=== Motivation ===
=== Motivation ===


Die Motivation die zu diesem Vortrag fuehrte war die Verwendung des
Die Motivation die zu diesem Vortrag führte war die Verwendung des
MUA alot und seines Oekosystems. Es sollte gezeigt werden, wie so ein
MUA alot und seines Ökosystems. Es sollte gezeigt werden, wie so ein
Aufbau auf Linuxsystemen funktioniert, wie man ein solches System
Aufbau auf Linuxsystemen funktioniert, wie man ein solches System
konfiguriert und den ganzen Vorgang etwas entmystifizieren.
konfiguriert und den ganzen Vorgang etwas entmystifizieren.


=== Oekosystem E-Mail ===
=== Ökosystem E-Mail ===


Das System besteht aus mehreren Komponenten die miteinander arbeiten. Jeder Teil hat eine spezielle Aufgabe.
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.
* '''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 ermoeglicht die schnelle Suche nach Inhalten der E-Mails.
* '''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 Verfuegung.
* '''Addressbook''': stellt E-Mail-Adressen von Kontakten zur Verfügung.
* '''Tagger''': kennzeichnet E-Mails mit Schluesselworten und erstellt somit eine weitere Sicht auf die E-Mails.
* '''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.
* '''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.
* '''MTA''': Der Mail Transfer Agent versendet E-Mails.
Zeile 26: Zeile 26:
=== vorgestellter Aufbau ===
=== vorgestellter Aufbau ===


Die vorgestellte Konfiguration verwendet folgende Programme fuer die
Die vorgestellte Konfiguration verwendet folgende Programme für die
oben genannten Komponenten:
oben genannten Komponenten:


Zeile 42: Zeile 42:
Die Programme sind alle Freie Software und bei den entsprechenden
Die Programme sind alle Freie Software und bei den entsprechenden
[[KunterBuntesSeminar-WS11/Lightning Talks/MUA#Weblinks|Weblinks]]
[[KunterBuntesSeminar-WS11/Lightning Talks/MUA#Weblinks|Weblinks]]
herunterladbar. Anschliessend sollte die Software installiert
herunterladbar. Anschließend sollte die Software installiert
werden. Diese Konfiguration ist nur eine moegliche
werden. Diese Konfiguration ist nur eine mögliche
Konfiguration. Einfach abtippen ohne nachzudenken ist nicht ratsam.
Konfiguration. Einfach abtippen ohne nachzudenken ist nicht ratsam.


Zeile 49: Zeile 49:


Offlineimap nutzen wir um die E-Mails, die wir vom Mailserver
Offlineimap nutzen wir um die E-Mails, die wir vom Mailserver
herunterladen lokal in Maildirs zu speichern. Offlineimap ermoeglicht
herunterladen lokal in Maildirs zu speichern. Offlineimap ermöglicht
E-Mails auch ohne Netzwerkverbindung zu versenden, loeschen oder
E-Mails auch ohne Netzwerkverbindung zu versenden, löschen oder
kennzeichnen. Offlineimap fuehrt die Aenderungen auf dem lokalen
kennzeichnen. Offlineimap führt die Änderungen auf dem lokalen
E-Mailverzeichnissen aus. Sobald wieder eine Netzwerkverbindung
E-Mailverzeichnissen aus. Sobald wieder eine Netzwerkverbindung
vorhanden ist werden die Aenderungen von offlineimap an die jeweiligen
vorhanden ist werden die Änderungen von offlineimap an die jeweiligen
Mailserver propagiert.
Mailserver propagiert.


Zunaechst richten wir uns ein Verzeichnis fuer unsere E-Mails ein:
Zunächst richten wir uns ein Verzeichnis für unsere E-Mails ein:


  mkdir -p ~/maildirs/beispiel1
  mkdir -p ~/maildirs/beispiel1
Zeile 79: Zeile 79:
[Repository beispieldir1]
[Repository beispieldir1]
# hier stehen die Infos wie die E-Mails gespeichert werden
# hier stehen die Infos wie die E-Mails gespeichert werden
type = Maildir # Typ koennte auch mbox sein
type = Maildir # Typ könnte auch mbox sein
localfolders = /home/user/maildirs/beispiel1/ # wo das Maildir liegt
localfolders = /home/user/maildirs/beispiel1/ # wo das Maildir liegt


Zeile 88: Zeile 88:
remoteuser = username
remoteuser = username
remotepass = passwort
remotepass = passwort
ssl = yes # Verschluesselung sollte der Mailserver sprechen
ssl = yes # Verschlüsselung sollte der Mailserver sprechen
holdconnectionopen = yes  
holdconnectionopen = yes  
idlefolders = ['INBOX']
idlefolders = ['INBOX']
</pre>
</pre>


Weitere Accounts koennen in der gleichen Datei darunter angegeben
Weitere Accounts können in der gleichen Datei darunter angegeben
werden. Offlineimap erlaubt es, dass man mit Hilfe eines Hooks die
werden. Offlineimap erlaubt es, dass man mit Hilfe eines Hooks die
Passwoerter nicht im Klartext in der Konfigurationsdatei hinterlegen
Passwörter nicht im Klartext in der Konfigurationsdatei hinterlegen
muss. Bei Interesse online in der Dokumentation nachlesen.
muss. Bei Interesse online in der Dokumentation nachlesen.


Zeile 105: Zeile 105:


Notmuch ist unser E-Mail-Indexer. Die Konfiguration ist sehr
Notmuch ist unser E-Mail-Indexer. Die Konfiguration ist sehr
einfach. Dazu fuehren wir folgenden Befehl aus:
einfach. Dazu führen wir folgenden Befehl aus:


  notmuch setup
  notmuch setup


Dann fuettern wir notmuch mit den wichtigen Informationen:
Dann füttern wir notmuch mit den wichtigen Informationen:


  Your full name: user
  Your full name: user
Zeile 124: Zeile 124:
  synchronize_flags=true
  synchronize_flags=true


Nun fuehren wir folgendes Kommando zum Initialisieren der Datenbank aus:
Nun führen wir folgendes Kommando zum Initialisieren der Datenbank aus:


  notmuch new
  notmuch new
Zeile 136: Zeile 136:
(nottoomuch-addresses.sh --update) und in
(nottoomuch-addresses.sh --update) und in
'''~/.config/nottoomuch/addresses''' im abook-Format speichert. So
'''~/.config/nottoomuch/addresses''' im abook-Format speichert. So
kann alot E-Mail-Adressen vervollstaendigen. Man tippt dazu drei
kann alot E-Mail-Adressen vervollständigen. Man tippt dazu drei
aufeinanderfolgende Buchstaben eines Namens oder einer E-Mail-Adresse
aufeinanderfolgende Buchstaben eines Namens oder einer E-Mail-Adresse
und erhaelt mit der Tabulatortaste moegliche Vervollstaendigungen.
und erhält mit der Tabulatortaste mögliche Vervollständigungen.


==== afew ====
==== afew ====


Afew ist ein Werkzeug um E-Mails zu taggen. Genau dafuer verwenden wir
Afew ist ein Werkzeug um E-Mails zu taggen. Genau dafür verwenden wir
es auch.
es auch.


Die Konfiguration ist in der README des Programms ausfuehrlich
Die Konfiguration ist in der README des Programms ausführlich
beschrieben. Afew wird in '''~/.config/afew/config''' konfiguriert.
beschrieben. Afew wird in '''~/.config/afew/config''' konfiguriert.


==== alot ====
==== alot ====


Alot ist ein GUI fuer notmuch. Wir verwenden alot als Mail User
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
Agent. Ganz im Sinne von notmuch archivieren wir E-Mails, damit unsere
Inbox leer ist. E-Mail-Threads die uns stoeren killen wir und
Inbox leer ist. E-Mail-Threads die uns stören killen wir und
schreiben E-Mails mit unserem Lieblings-Texteditor.
schreiben E-Mails mit unserem Lieblings-Texteditor.


Alot wird in '''~/.config/alot/config''' eingerichtet. Sie aehnelt
Alot wird in '''~/.config/alot/config''' eingerichtet. Sie ähnelt
sehr der offlineimap Konfigurationsdatei. Die aktuelle Dokumentation
sehr der offlineimap Konfigurationsdatei. Die aktuelle Dokumentation
zur Konfiguration findet sich bei
zur Konfiguration findet sich bei
[http://readthedocs.org/docs/alot/en/latest/configuration/index.html Read The Docs]
[http://readthedocs.org/docs/alot/en/latest/configuration/index.html Read The Docs]


  # gute Terminals koennen 256 Farben darstellen
  # gute Terminals können 256 Farben darstellen
  colourmode = 256
  colourmode = 256
  # welche Header sollen angezeigt werden?
  # welche Header sollen angezeigt werden?
Zeile 194: Zeile 194:
auch andere MTAs wie Postfix (Standard bei Ubuntu) verwenden. Hier
auch andere MTAs wie Postfix (Standard bei Ubuntu) verwenden. Hier
wird allerdings die besonders einfache Konfiguration von Exim4
wird allerdings die besonders einfache Konfiguration von Exim4
erlaeutert.
erläutert.


Wir senden E-Mails ueber einen sogenannten Smarthost in die weite
Wir senden E-Mails über einen sogenannten Smarthost in die weite
Welt. Der Smarthost ist ein Mailserver, der unsere E-Mails
Welt. Der Smarthost ist ein Mailserver, der unsere E-Mails
weiterleitet. Es kann zum Beispiel der Mailserver des Informatikums
weiterleitet. Es kann zum Beispiel der Mailserver des Informatikums
hierfuer verwendet werden oder aber auch ein eigener.
hierfür verwendet werden oder aber auch ein eigener.


Folgendes Kommando ist auszufuehren:
Folgendes Kommando ist auszuführen:


  dpkg-reconfigure exim4-config
  dpkg-reconfigure exim4-config
Zeile 224: Zeile 224:
Port 25 verwendet werden.  
Port 25 verwendet werden.  


Nun muessen wir dem MTA nur noch mitteilen wie wir uns gegenueber dem
Nun müssen wir dem MTA nur noch mitteilen wie wir uns gegenüber dem
Smarthost authentifizieren. Das machen wir in der Datei
Smarthost authentifizieren. Das machen wir in der Datei
'''/etc/exim4/passwd.client''':
'''/etc/exim4/passwd.client''':
Zeile 230: Zeile 230:
  smartho.st:username:password
  smartho.st:username:password


Anschliessend statten wir die Datei mit den Rechten
Anschließend statten wir die Datei mit den Rechten
'''root:Debian-exim 0640''' aus:
'''root:Debian-exim 0640''' aus:


Zeile 237: Zeile 237:


Das war es dann auch schon. Nun sollten wir ein funktionierendes
Das war es dann auch schon. Nun sollten wir ein funktionierendes
E-Mail-Oekosystem auf unserem Rechner haben.
E-Mail-Ökosystem auf unserem Rechner haben.


=== Referent ===
=== Referent ===

Version vom 12. Januar 2014, 22:50 Uhr

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

Motivation

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

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

Die vorgestellte Konfiguration verwendet folgende Programme für die oben genannten Komponenten:

  • MRA/MDA: offlineimap
  • Indexer: notmuch
  • Addressbook: nottoomuch-addresses
  • Tagger: afew
  • MUA: alot
  • MTA: exim4

Das Betriebssystem ist Debian GNU/Linux.

Konfiguration der Komponenten

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

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

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.

nottoomuch-addresses

nottoomuch-addresses.sh ist ein Shellscript, dass aus der notmuch-Datenbank alle E-Mail-Adressen extrahiert (nottoomuch-addresses.sh --update) und in ~/.config/nottoomuch/addresses im abook-Format speichert. So kann alot E-Mail-Adressen vervollständigen. Man tippt dazu drei aufeinanderfolgende Buchstaben eines Namens oder einer E-Mail-Adresse und erhält mit der Tabulatortaste mögliche Vervollständigungen.

afew

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

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
[bindings]
T = search is:todo
[[search]]
t = toggletags todo

Das war es dann auch schon. Alot starten wir mit dem Befehl:

alot

exim4

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

bjoernb: Ich bin per jabber (bjoernb@jabber.ccc.de) oder mail (4bewersd@inf) zu erreichen, oder ab und an im c.t..

Folien

Folien vom Vortrag

Weblinks