notmuch aneb jak zvládnout záplavu emailu - installfest.cz · InstallFest 2016 Michal Sojka...
Transcript of notmuch aneb jak zvládnout záplavu emailu - installfest.cz · InstallFest 2016 Michal Sojka...
notmuch aneb jak zvládnout záplavu emailů
Michal [email protected]
@wentasah
ČVUT v PrazeFakulta elektrotechnickáKatedra řídicí techniky
InstallFest 2016
Michal Sojka notmuch InstallFest 2016 1 / 17
Jak organizovat emaily?
1990 Složky2000 Tagy2010 Vyhledávání
—Jani Nikula
Notmuch podporuje vše!
Michal Sojka notmuch InstallFest 2016 2 / 17
Osnova
Co je to notmuch?
Příkazová řádka
Emacs client
Ostatní
Michal Sojka notmuch InstallFest 2016 3 / 17
Co je to notmuch?
Co je to notmuch?https://notmuchmail.org/
I „not much of an email program“I Indexer emailů (Maildir)I Neumí žádné protokoly! (SMTP, IMAP, . . . )I Postaven na databázovém enginu Xapian (NoSQL
databáze)
Michal Sojka notmuch InstallFest 2016 4 / 17
Co je to notmuch?
Ekosystém okolo notmuch
Mail user agents
Language bindings
Tools
libnotmuch.so
Xapian GMime
notmuch CLI
Emacs MUAnotmuch-web
mutt-kz notmuch-vim
RubyGo Python
nmbug
notmuchfsafew
muchsync
alotastroid
bowernoservice
Michal Sojka notmuch InstallFest 2016 5 / 17
Co je to notmuch?
Příjem a odesílání emailů
Příjem:I offlineimap (pomalé?)I isync/mbsyncI fetchmailI notmuch na serveru
Odesílání:I Lokální MTAI sSMTPI . . .
Michal Sojka notmuch InstallFest 2016 6 / 17
Co je to notmuch?
Vývoj
I Carl Worth začal vyvíjet notmuch v roce 2009I Maintainer David BremnerI Core team – cca 5 lidíI Desítky dalších přispěvatelůI Distribuovaný bug tracker
I Sdílení určitých tagů pomocí gitu (nástroj nmbug)I 715 testů
Michal Sojka notmuch InstallFest 2016 7 / 17
Příkazová řádka
Začínáme
I První spuštění notmuch→ interaktivní konfiguraceI Jméno, emailI Adresář s mailyI Tagy pro nové maily
I notmuch new→ indexování nových (všech) emailůI tree ~/mail
+-- .notmuch| +-- hooks| +-- xapian+-- inbox
+-- cur+-- new+-- tmp
Michal Sojka notmuch InstallFest 2016 8 / 17
Příkazová řádka
Hledáme
I notmuch countI notmuch search moon
I notmuch show thread:0000000000002221I notmuch show --format=json thread:0000000000002221
| jq
I notmuch search to:[email protected] andtag:unread
I notmuch search tag:unread and date:yesterday..I notmuch search --output=messages ...
I notmuch show id:[email protected]
I notmuch search --output=files tag:spam | xargs rm
Michal Sojka notmuch InstallFest 2016 9 / 17
Příkazová řádka
Data mining :-)
for y in $(seq 2004 2015); dofor m in $(seq -w 12); do
echo $y-$m $(notmuch count to:sojkam1 date:$y-$m..!)done
done | gnuplot -p -e ’set xdata time; set timefmt "%Y-%m";plot "-" using 1:2 with l’
Michal Sojka notmuch InstallFest 2016 10 / 17
Příkazová řádka
Tagujeme
I notmuch tag +funny id:...I notmuch tag +important to:notmuch ( bug or problem
) completionI notmuch tag -inbox +work id:...
I Synchronizace Maildir příznaků a tagů (unread, replied,flagged, . . . )
I Počáteční tagováníI ~/mail/.notmuch/hooks/post-newI Zatím chybí vestavěná možnost hledání a tagování List-id
hlavičekI Nástroj afew
Michal Sojka notmuch InstallFest 2016 11 / 17
Emacs client
Emacs client
Michal Sojka notmuch InstallFest 2016 12 / 17
Emacs client
Hledání – vlákna
Michal Sojka notmuch InstallFest 2016 13 / 17
Emacs client
Hledání – stromový pohled
Michal Sojka notmuch InstallFest 2016 14 / 17
Emacs client
Psaní mailů, doplňování adres
Michal Sojka notmuch InstallFest 2016 15 / 17
Ostatní
Ostatní
I Podpora PGPI Integrace s org-modeI „Stash“
I URL právě otevřeného emailu ve veřejném archivuI Parametry pro „git send-email“
I „Pipování“ emailů (např. pro „git am“)I Když je index větší než RAM, je lepší ho mít na SSD disku.
Maily mohou být na rotačním.
Michal Sojka notmuch InstallFest 2016 16 / 17
Ostatní
Děkuji za pozornost!
Otázky?
Michal Sojka notmuch InstallFest 2016 17 / 17