mirror of https://github.com/djcb/mu.git
* update web pages
This commit is contained in:
parent
a5184674ef
commit
6ba2b8c588
Binary file not shown.
After Width: | Height: | Size: 8.5 KiB |
|
@ -1,6 +1,7 @@
|
||||||
#+title: Mu
|
#+title:
|
||||||
#+style: <link rel="stylesheet" type="text/css" href="mu.css">
|
#+style: <link rel="stylesheet" type="text/css" href="mu.css">
|
||||||
#+html:<img src="mu.jpg" align="right" margin="10px"/>
|
#+html:<img src="mu.jpg" align="right" margin="10px"/>
|
||||||
|
#+options: skip t
|
||||||
|
|
||||||
* Welcome to mu!
|
* Welcome to mu!
|
||||||
|
|
||||||
|
@ -9,15 +10,32 @@
|
||||||
that mail - in particular, to instantly find that one important e-mail you
|
that mail - in particular, to instantly find that one important e-mail you
|
||||||
need right now.
|
need right now.
|
||||||
|
|
||||||
*mu* is a tool for dealing with e-mail messages stored in the
|
*mu* is a tool for dealing with e-mail messages stored in the [[http://en.wikipedia.org/wiki/Maildir][Maildir]]-format,
|
||||||
[[http://en.wikipedia.org/wiki/Maildir][Maildir]]-format. *mu*'s main purpose is to help you to quickly find the
|
on Unix-like systems. *mu*'s main purpose is to help you to quickly find the
|
||||||
messages you need; in addition, it allows you to view messages, extract
|
messages you need; in addition, it allows you to view messages, extract
|
||||||
attachments, create new maildirs, ... See the [[file:cheatsheet.org][mu cheatsheet]] for some examples.
|
attachments, create new maildirs, ... See the [[file:cheatsheet.org][mu cheatsheet]] for some examples.
|
||||||
|
|
||||||
Searching works by first indexing your messages into a [[http://xapian.org/][Xapian]]-database, which
|
Searching works by first indexing your messages into a [[http://xapian.org/][Xapian]]-database, which
|
||||||
can then be queried using a custom query language.
|
can then be queried using a custom query language.
|
||||||
|
|
||||||
|
** Features
|
||||||
|
|
||||||
|
- fast indexing for Maildir, Maildir+ and Maildir-on-VFAT
|
||||||
|
- search for messages based on the sender, receiver, subject, date range,
|
||||||
|
size, priority, words in message, flags (signed, encrypted, new, replied,
|
||||||
|
has-attachment,...), message-id, maildir, tags, attachment (name,
|
||||||
|
mime-type, text) and more
|
||||||
|
- command-line tools for indexing, searching, viewing, extracting
|
||||||
|
attachments, exporting address lists, creating maildirs, ...
|
||||||
|
- accent/case normalization - so /angstrom/ will match /Ångström/.
|
||||||
|
- can be integrated with other e-mail clients such as [[http://www.mutt.org/][mutt]] and [[http://www.emacswiki.org/emacs/WanderLust][Wanderlust]].
|
||||||
|
- [[file:mu4e.html][mu4e]], an emacs-based e-mail client based on =mu=
|
||||||
|
- [[file:mu-guile.html][mu-guile]]: guile-bindings that allow for scripting, advanced processing of
|
||||||
|
your data
|
||||||
|
- fully documented (man pages, info pages)
|
||||||
|
|
||||||
** News
|
** News
|
||||||
|
|
||||||
- 2012-01-07: [[http://code.google.com/p/mu0/downloads/detail?name%3Dmu-0.9.8-alpha3.tar.gz][mu-0.9.8-alpha-3]] is available, with fixes for some =mu4e=
|
- 2012-01-07: [[http://code.google.com/p/mu0/downloads/detail?name%3Dmu-0.9.8-alpha3.tar.gz][mu-0.9.8-alpha-3]] is available, with fixes for some =mu4e=
|
||||||
configuration problems; also, the documentation now contains an example of
|
configuration problems; also, the documentation now contains an example of
|
||||||
how to set up =mu4e= with Gmail.
|
how to set up =mu4e= with Gmail.
|
||||||
|
@ -73,23 +91,6 @@
|
||||||
|
|
||||||
- [[file:old-news.org][Old news]]
|
- [[file:old-news.org][Old news]]
|
||||||
|
|
||||||
** Features
|
|
||||||
|
|
||||||
- fast indexing for Maildir, Maildir+ and Maildir-on-VFAT
|
|
||||||
- search for messages based on the sender, receiver, message subject, size,
|
|
||||||
priority, words in the message body, attachments, date range, flags
|
|
||||||
(signed, encrypted, new, replied, unread, ...), message-id, maildir
|
|
||||||
- known to work on Linux (Ubuntu/Fedora/Debian/Gentoo), FreeBSD, MacOS,
|
|
||||||
Solaris, ...
|
|
||||||
- fully documented (man pages)
|
|
||||||
- can be integrated with e-mail clients; documentation has examples for [[http://www.mutt.org/][mutt]]
|
|
||||||
and [[http://www.emacswiki.org/emacs/WanderLust][Wanderlust]].
|
|
||||||
- output in plain text, xml, s-expressions (experimental)
|
|
||||||
- extract message parts, attachments, open them using their default
|
|
||||||
application
|
|
||||||
|
|
||||||
In addition, there is a toy UI for *mu* called [[file:mug.org][mug]]; the plan is to slowly
|
|
||||||
evolve this into a full-featured UI.
|
|
||||||
|
|
||||||
** Development & download
|
** Development & download
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
|
|
|
@ -0,0 +1,156 @@
|
||||||
|
#+title: mu-guile: guile-bindings for mu
|
||||||
|
#+style: <link rel="stylesheet" type="text/css" href="mu.css">
|
||||||
|
#+options: skip t
|
||||||
|
|
||||||
|
Starting from version 0.9.7, =mu= had early, experimental bindings for the
|
||||||
|
[[http://www.gnu.org/software/guile/][GNU/Guile]] programming language, which is a version of the [[http://en.wikipedia.org/wiki/Scheme_(programming_language)][Scheme]] programming
|
||||||
|
language, specifically designed for extending existing programs.
|
||||||
|
|
||||||
|
=mu= version 0.9.8 has much improved bindings, and they are [[file:mu-guile/index.html][documented]], with
|
||||||
|
many examples. You can find more examples in the =guile/examples= directory of
|
||||||
|
the =mu= source package.
|
||||||
|
|
||||||
|
It must be said that Scheme (and in general, languages from the Lisp-family)
|
||||||
|
initially may look a bit 'strange' -- all these parentheses etc.; so please
|
||||||
|
bear with us.
|
||||||
|
|
||||||
|
** Some examples
|
||||||
|
|
||||||
|
Here are some examples; we don't provide too much explanation /how/ they do
|
||||||
|
what they do, but the [[file:mu-guile/index.html][manual]] takes you through that, step-by-step.
|
||||||
|
|
||||||
|
*** Messages per weekday
|
||||||
|
|
||||||
|
#+begin_src scheme
|
||||||
|
#!/bin/sh
|
||||||
|
exec guile -s $0 $@
|
||||||
|
!#
|
||||||
|
|
||||||
|
(use-modules (mu) (mu message) (mu stats) (mu plot))
|
||||||
|
(mu:initialize)
|
||||||
|
|
||||||
|
;; create a list like (("Mon" . 13) ("Tue" . 23) ...)
|
||||||
|
(define weekday-table
|
||||||
|
(mu:day-numbers->names
|
||||||
|
(sort
|
||||||
|
(mu:tabulate-messages
|
||||||
|
(lambda (msg)
|
||||||
|
(tm:wday (localtime (mu:date msg)))))
|
||||||
|
(lambda (a b) (< (car a) (car b))))))
|
||||||
|
|
||||||
|
(for-each
|
||||||
|
(lambda (elm)
|
||||||
|
(format #t "~a: ~a\n" (car elm) (cdr elm)))
|
||||||
|
weekday-table)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
Which might get us something like:
|
||||||
|
|
||||||
|
#+begin_example
|
||||||
|
Sun: 2278
|
||||||
|
Mon: 2991
|
||||||
|
Tue: 3077
|
||||||
|
Wed: 2734
|
||||||
|
Thu: 2796
|
||||||
|
Fri: 2343
|
||||||
|
Sat: 1856
|
||||||
|
#+end_example
|
||||||
|
|
||||||
|
*** Drawing graphs
|
||||||
|
|
||||||
|
We can also draw graphs from this, by adding the following to the script:
|
||||||
|
|
||||||
|
#+begin_src scheme
|
||||||
|
;; plain-text graph
|
||||||
|
(mu:plot (weekday-table) "Messages per weekday" "Day" "Messages" #t)
|
||||||
|
|
||||||
|
;; GUI graph
|
||||||
|
(mu:plot (weekday-table) "Messages per weekday" "Day" "Messages")
|
||||||
|
#+end_src scheme
|
||||||
|
|
||||||
|
This gives us the following:
|
||||||
|
|
||||||
|
**** plain text graph
|
||||||
|
#+begin_example
|
||||||
|
Messages per weekday
|
||||||
|
Messages
|
||||||
|
3200 ++---+--------+---------+--------+---------+---------+--------+---++
|
||||||
|
| + + "/tmp/filel8NGRf" using 2:xticlabels(1) ****** |
|
||||||
|
3000 ++ * * ++
|
||||||
|
| *********** * |
|
||||||
|
| * ** * |
|
||||||
|
2800 ++ * ** * ********* ++
|
||||||
|
| * ** ************ * |
|
||||||
|
2600 ++ * ** ** ** * ++
|
||||||
|
| * ** ** ** * |
|
||||||
|
| * ** ** ** * |
|
||||||
|
2400 ++ * ** ** ** *********** ++
|
||||||
|
*********** ** ** ** ** * |
|
||||||
|
2200 *+ ** ** ** ** ** * ++
|
||||||
|
* ** ** ** ** ** * |
|
||||||
|
* ** ** ** ** ** * |
|
||||||
|
2000 *+ ** ** ** ** ** * ++
|
||||||
|
* + ** + ** + ** + ** + ** + ***********
|
||||||
|
1800 ********************************************************************
|
||||||
|
Sun Mon Tue Wed Thu Fri Sat
|
||||||
|
Day
|
||||||
|
#+end_example
|
||||||
|
|
||||||
|
**** GUI graph
|
||||||
|
|
||||||
|
[[file:graph01.png]]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*** Export contacts to =mutt=
|
||||||
|
|
||||||
|
=mu= provides =mu cfind= to get contact information from the database; it's
|
||||||
|
fast, since it uses cached contact data. But sometimes, we may want to get a
|
||||||
|
bit more advanced. For examples, suppose I want a list of names and e-mail
|
||||||
|
addresses of people that were seen at least 20 times since 2010, in the
|
||||||
|
=mutt= address book format.
|
||||||
|
|
||||||
|
We could get such a list with something like the following:
|
||||||
|
|
||||||
|
#+begin_src scheme
|
||||||
|
#!/bin/sh
|
||||||
|
exec guile -s $0 $@ !#
|
||||||
|
|
||||||
|
(use-modules (mu) (mu message) (mu contact))
|
||||||
|
(mu:initialize)
|
||||||
|
|
||||||
|
;; Get a list of contacts that were seen at least 20 times since 2010
|
||||||
|
(define (selected-contacts)
|
||||||
|
(let ((addrs '())
|
||||||
|
(start (car (mktime (car (strptime "%F" "2010-01-01")))))
|
||||||
|
(minfreq 20))
|
||||||
|
(mu:for-each-contact
|
||||||
|
(lambda (contact)
|
||||||
|
(if (and (mu:email contact)
|
||||||
|
(>= (mu:frequency contact) minfreq)
|
||||||
|
(>= (mu:last-seen contact) start))
|
||||||
|
(set! addrs (cons contact addrs)))))
|
||||||
|
addrs))
|
||||||
|
|
||||||
|
(for-each
|
||||||
|
(lambda (contact)
|
||||||
|
(format #t "~a\n" (mu:contact->string contact "mutt-alias")))
|
||||||
|
(selected-contacts))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
** License & Copyright
|
||||||
|
|
||||||
|
*mu4e* was designed and implemented by Dirk-Jan C. Binnema, and is Free
|
||||||
|
Software, licensed under the GNU GPLv3
|
||||||
|
|
||||||
|
#+html:<hr/><div align="center">© 2011-2012 Dirk-Jan C. Binnema</div>
|
||||||
|
#+begin_html
|
||||||
|
<script type="text/javascript">
|
||||||
|
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||||
|
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var pageTracker = _gat._getTracker("UA-578531-1");
|
||||||
|
pageTracker._trackPageview();
|
||||||
|
</script>
|
||||||
|
#+end_html
|
92
www/mu.css
92
www/mu.css
|
@ -22,3 +22,95 @@ a.menu:visited {color: #ffffff; text-decoration: none; }
|
||||||
a.menu:hover {color: #ff0000; text-decoration: underline; }
|
a.menu:hover {color: #ff0000; text-decoration: underline; }
|
||||||
|
|
||||||
.mine {color: #ffffff; font-weight: bold}
|
.mine {color: #ffffff; font-weight: bold}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* emacs-code -----------------------*/
|
||||||
|
|
||||||
|
/* zenburnesque code blocks in for html-exported org mode */
|
||||||
|
|
||||||
|
|
||||||
|
pre.src {
|
||||||
|
background: #dddddd;
|
||||||
|
color: #555555;
|
||||||
|
}
|
||||||
|
|
||||||
|
.org-preprocessor {
|
||||||
|
color: #8cd0d3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.org-variable-name {
|
||||||
|
color: #0084C8;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.org-string {
|
||||||
|
color: #4E9A06;
|
||||||
|
}
|
||||||
|
|
||||||
|
.org-type {
|
||||||
|
color: #2F8B58;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.org-function-name {
|
||||||
|
color: #00578E;
|
||||||
|
font-weight: bold
|
||||||
|
}
|
||||||
|
|
||||||
|
.org-keyword {
|
||||||
|
color: #A52A2A;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.org-comment {
|
||||||
|
color: #204A87;
|
||||||
|
}
|
||||||
|
|
||||||
|
.org-doc {
|
||||||
|
color: #afd8af;
|
||||||
|
}
|
||||||
|
|
||||||
|
.org-comment-delimiter {
|
||||||
|
color: #708070;
|
||||||
|
}
|
||||||
|
|
||||||
|
.org-constant {
|
||||||
|
color: #F5666D;
|
||||||
|
}
|
||||||
|
|
||||||
|
.org-builtin {
|
||||||
|
color: #A020F0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.warning, .org-warning {
|
||||||
|
color: yellow;
|
||||||
|
font-weight: bold
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* emacs other stuff --------------------- */
|
||||||
|
.org-date, .org-org-date {
|
||||||
|
/* org-date */
|
||||||
|
color: #00ffff;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
.org-hide, .org-org-hide {
|
||||||
|
/* org-hide */
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
.org-level-1, .org-org-level-1 {
|
||||||
|
/* org-level-1 */
|
||||||
|
color: #356da0;
|
||||||
|
}
|
||||||
|
.org-level-2,.org-org-level-2 {
|
||||||
|
/* org-level-2 */
|
||||||
|
color: #7685de;
|
||||||
|
}
|
||||||
|
.org-todo,.org-org-todo {
|
||||||
|
/* org-todo */
|
||||||
|
color: #ffc0cb;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 46 KiB |
Binary file not shown.
After Width: | Height: | Size: 132 KiB |
Binary file not shown.
After Width: | Height: | Size: 80 KiB |
|
@ -0,0 +1,37 @@
|
||||||
|
#+title: mu4e: mu for emacs
|
||||||
|
#+style: <link rel="stylesheet" type="text/css" href="mu.css">
|
||||||
|
#+options: skip t
|
||||||
|
|
||||||
|
With version 0.9.8, =mu= comes with an emacs-based e-mail client that uses
|
||||||
|
=mu= for its back-end: *mu4e*. For all the details, please see [[file:mu4e/index.html][manual]].
|
||||||
|
|
||||||
|
** Screenshots
|
||||||
|
|
||||||
|
Here are some screenshots.
|
||||||
|
|
||||||
|
*** The main view
|
||||||
|
[[file:mu4e-1.png]]
|
||||||
|
|
||||||
|
*** The headers view
|
||||||
|
[[file:mu4e-2.png]]
|
||||||
|
|
||||||
|
*** The message view
|
||||||
|
[[file:mu4e-3.png]]
|
||||||
|
|
||||||
|
|
||||||
|
** License & Copyright
|
||||||
|
|
||||||
|
*mu4e* was designed and implemented by Dirk-Jan C. Binnema, and is Free
|
||||||
|
Software, licensed under the GNU GPLv3
|
||||||
|
|
||||||
|
#+html:<hr/><div align="center">© 2011-2012 Dirk-Jan C. Binnema</div>
|
||||||
|
#+begin_html
|
||||||
|
<script type="text/javascript">
|
||||||
|
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||||
|
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var pageTracker = _gat._getTracker("UA-578531-1");
|
||||||
|
pageTracker._trackPageview();
|
||||||
|
</script>
|
||||||
|
#+end_html
|
Loading…
Reference in New Issue