Bearbeiten von „KunterBuntesSeminar-WS11/Lightning Talks/MUA“
Zur Navigation springen
Zur Suche springen
Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird bei Bearbeitungen öffentlich sichtbar. Melde dich an oder erstelle ein Benutzerkonto, damit Bearbeitungen deinem Benutzernamen zugeordnet werden.
Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und veröffentliche dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.
Aktuelle Version | Dein Text | ||
Zeile 1: | Zeile 1: | ||
{{:KunterBuntesSeminar-WS11/Terminseiten-Header|7|01. Dezember 2011|zeit='''19:45''' bis 19:50|raum= | {{:KunterBuntesSeminar-WS11/Terminseiten-Header|7|01. Dezember 2011|zeit='''19:45''' bis 19:50|raum=D-220}} | ||
Dieser Lightning Talk wurde in der [[KunterBuntesSeminar-WS11/ | Dieser Lightning Talk wurde in der [[KunterBuntesSeminar-WS11/Lightning_Talks|ersten Lightning Talk Session]] des KunterBuntenSeminars im Wintersemester 2011 gehalten. | ||
== Using a MUA on your local linux system == | == Using a MUA on your local linux system == | ||
Zeile 8: | Zeile 8: | ||
=== Motivation === | === Motivation === | ||
Die Motivation die zu diesem Vortrag | Die Motivation die zu diesem Vortrag fuehrte war die Verwendung des | ||
MUA alot und seines | MUA alot und seines Oekosystems. 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 === | ||
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 | * '''Indexer''': indiziert die E-Mails in den E-Mail-Verzeichnissen und ermoeglicht die schnelle Suche nach Inhalten der E-Mails. | ||
* '''Tagger''': kennzeichnet E-Mails mit Schluesselworten und erstellt somit eine weitere Sicht auf die E-Mails. | |||
* '''Tagger''': kennzeichnet E-Mails mit | |||
* '''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 25: | ||
=== vorgestellter Aufbau === | === vorgestellter Aufbau === | ||
Die vorgestellte Konfiguration verwendet folgende Programme | Die vorgestellte Konfiguration verwendet folgende Programme fuer die | ||
oben genannten Komponenten: | oben genannten Komponenten: | ||
* '''MRA/MDA''': offlineimap | * '''MRA/MDA''': offlineimap | ||
* '''Indexer''': notmuch | * '''Indexer''': notmuch | ||
* '''Addressbook''': | * '''Addressbook''': nottoomuch-addresses | ||
* '''Tagger''': afew | * '''Tagger''': afew | ||
* '''MUA''': alot | * '''MUA''': alot | ||
Zeile 41: | Zeile 40: | ||
Die Programme sind alle Freie Software und bei den entsprechenden | Die Programme sind alle Freie Software und bei den entsprechenden | ||
[[KunterBuntesSeminar-WS11/ | [[KunterBuntesSeminar-WS11/Lightning_Talks/MUA#Weblinks | Weblinks]] | ||
herunterladbar. | herunterladbar. Anschliessend sollte die Software installiert | ||
werden. Diese Konfiguration ist nur eine | werden. Diese Konfiguration ist nur eine moegliche | ||
Konfiguration. Einfach abtippen ohne nachzudenken ist nicht ratsam. | Konfiguration. Einfach abtippen ohne nachzudenken ist nicht ratsam. | ||
Zeile 49: | Zeile 48: | ||
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 | herunterladen lokal in Maildirs zu speichern. Offlineimap ermoeglicht | ||
E-Mails auch ohne Netzwerkverbindung zu versenden, | E-Mails auch ohne Netzwerkverbindung zu versenden, loeschen oder | ||
kennzeichnen. Offlineimap | kennzeichnen. Offlineimap fuehrt die Aenderungen auf dem lokalen | ||
E-Mailverzeichnissen aus. Sobald wieder eine Netzwerkverbindung | E-Mailverzeichnissen aus. Sobald wieder eine Netzwerkverbindung | ||
vorhanden ist werden die | vorhanden ist werden die Aenderungen von offlineimap an die jeweiligen | ||
Mailserver propagiert. | Mailserver propagiert. | ||
Zunaechst richten wir uns ein Verzeichnis fuer unsere E-Mails ein: | |||
mkdir -p ~/maildirs/beispiel1 | mkdir -p ~/maildirs/beispiel1 | ||
Zeile 74: | Zeile 73: | ||
remoterepository = beispielimap1 # Sektion s.u. | remoterepository = beispielimap1 # Sektion s.u. | ||
autorefresh = 2.5 # wie oft synchronisiert werden soll in Minuten | autorefresh = 2.5 # wie oft synchronisiert werden soll in Minuten | ||
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 | 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] | [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 | type = Maildir # Typ koennte auch mbox sein | ||
localfolders = /home/user/maildirs/beispiel1/ # wo das Maildir liegt | localfolders = /home/user/maildirs/beispiel1/ # wo das Maildir liegt | ||
Zeile 88: | Zeile 86: | ||
remoteuser = username | remoteuser = username | ||
remotepass = passwort | remotepass = passwort | ||
ssl = yes # | ssl = yes # Verschluesselung sollte der Mailserver sprechen | ||
holdconnectionopen = yes | holdconnectionopen = yes | ||
idlefolders = ['INBOX'] | idlefolders = ['INBOX'] | ||
</pre> | </pre> | ||
Weitere Accounts | Weitere Accounts koennen 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 | |||
muss. Bei Interesse online in der Dokumentation nachlesen. | muss. Bei Interesse online in der Dokumentation nachlesen. | ||
Offlineimap starten wir wie folgt | Offlineimap starten wir wie folgt: | ||
offlineimap -u | offlineimap -u -Noninteractive.Basic | ||
==== notmuch ==== | ==== notmuch ==== | ||
Notmuch ist unser E-Mail-Indexer. Die Konfiguration ist sehr | Notmuch ist unser E-Mail-Indexer. Die Konfiguration ist sehr | ||
einfach. Dazu | einfach. Dazu fuehren wir folgenden Befehl aus: | ||
notmuch setup | notmuch setup | ||
Dann | Dann fuettern wir notmuch mit den wichtigen Informationen: | ||
Your full name: user | Your full name: user | ||
Zeile 124: | Zeile 122: | ||
synchronize_flags=true | synchronize_flags=true | ||
Nun | Nun fuehren wir folgendes Kommando zum Initialisieren der Datenbank aus: | ||
notmuch new | notmuch new | ||
Zeile 130: | Zeile 128: | ||
Das war es dann auch schon. | 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 | |||
Man tippt dazu drei aufeinanderfolgende Buchstaben eines Namens oder | kann alot E-Mail-Adressen vervollstaendigen. Man tippt dazu drei | ||
einer E-Mail-Adresse und | aufeinanderfolgende Buchstaben eines Namens oder einer E-Mail-Adresse | ||
und erhaelt mit der Tabulatortaste moegliche Vervollstaendigungen. | |||
==== afew ==== | ==== afew ==== | ||
Afew ist ein Werkzeug um E-Mails zu taggen. Genau | Afew ist ein Werkzeug um E-Mails zu taggen. Genau dafuer verwenden wir | ||
es auch. | es auch. | ||
Die Konfiguration ist in der README des Programms | Die Konfiguration ist in der README des Programms ausfuehrlich | ||
beschrieben. Afew wird in '''~/.config/afew/config''' konfiguriert. | beschrieben. Afew wird in '''~/.config/afew/config''' konfiguriert. | ||
==== alot ==== | ==== alot ==== | ||
Alot ist ein GUI | Alot ist ein GUI fuer 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 | Inbox leer ist. E-Mail-Threads die uns stoeren 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 | Alot wird in '''~/.config/alot/config''' eingerichtet. Sie aehnelt sehr der | ||
sehr der offlineimap Konfigurationsdatei | offlineimap Konfigurationsdatei: | ||
# gute Terminals | [general] | ||
# gute Terminals koennen 256 Farben darstellen | |||
colourmode = 256 | colourmode = 256 | ||
# welche Header sollen angezeigt werden? | # welche Header sollen angezeigt werden? | ||
displayed_headers = From,To,Cc,Bcc,Subject | displayed_headers = From,To,Cc,Bcc,Subject | ||
# welche E-Mails sollen nach dem Start angezeigt werden. Dies ist eine notmuch Suche | # welche E-Mails sollen nach dem Start angezeigt werden. Dies ist eine notmuch Suche | ||
initial_command = search tag:inbox AND NOT tag:killed | initial_command = search tag:inbox AND NOT tag:killed | ||
[account beispielaccount1] | |||
# hier steht alles zu unserem E-Mail-Account | # hier steht alles zu unserem E-Mail-Account | ||
realname = Echter Name | realname = Echter Name | ||
Zeile 178: | Zeile 174: | ||
# hier legen wir unsere gesendeten E-Mails ab. | # hier legen wir unsere gesendeten E-Mails ab. | ||
sent_box = maildir:///home/user/maildirs/beispiel1/INBOX.Sent | sent_box = maildir:///home/user/maildirs/beispiel1/INBOX.Sent | ||
Das war es dann auch schon. Alot starten wir mit dem Befehl: | Das war es dann auch schon. Alot starten wir mit dem Befehl: | ||
Zeile 200: | Zeile 184: | ||
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. | |||
Wir senden E-Mails | Wir senden E-Mails ueber 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. | |||
Folgendes Kommando ist | Folgendes Kommando ist auszufuehren: | ||
dpkg-reconfigure exim4-config | dpkg-reconfigure exim4-config | ||
Zeile 230: | Zeile 214: | ||
Port 25 verwendet werden. | Port 25 verwendet werden. | ||
Nun | Nun muessen wir dem MTA nur noch mitteilen wie wir uns gegenueber 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 236: | Zeile 220: | ||
smartho.st:username:password | smartho.st:username:password | ||
Anschliessend statten wir die Datei mit den Rechten | |||
'''root:Debian-exim 0640''' aus: | '''root:Debian-exim 0640''' aus: | ||
Zeile 243: | Zeile 227: | ||
Das war es dann auch schon. Nun sollten wir ein funktionierendes | Das war es dann auch schon. Nun sollten wir ein funktionierendes | ||
E-Mail- | E-Mail-Oekosystem auf unserem Rechner haben. | ||
=== Referent === | === Referent === | ||
bjoernb: Ich bin per jabber (bjoernb@ | bjoernb: Ich bin per jabber (bjoernb@jabber.ccc.de) oder mail (4bewersd@inf) zu erreichen, oder ab und an im c.t.. | ||
=== Folien === | === Folien === | ||
Folien folgen. | |||
== Weblinks == | == Weblinks == | ||
Zeile 260: | Zeile 243: | ||
* [http://www.offlineimap.org/ offlineimap] | * [http://www.offlineimap.org/ offlineimap] | ||
* [http://www.notmuchmail.org/ notmuch] | * [http://www.notmuchmail.org/ notmuch] | ||
* [http://www.guru-group.fi/~too/nottoomuch/nottoomuch-addresses/ nottoomuch-addresses] | |||
* [https://github.com/teythoon/afew afew] | * [https://github.com/teythoon/afew afew] | ||
* [https://github.com/pazz/alot alot] | * [https://github.com/pazz/alot alot] | ||
[[Kategorie:KunterBuntesSeminar]] | [[Kategorie:KunterBuntesSeminar]] |