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">
|
||||
#+html:<img src="mu.jpg" align="right" margin="10px"/>
|
||||
#+options: skip t
|
||||
|
||||
* Welcome to mu!
|
||||
|
||||
|
@ -9,15 +10,32 @@
|
|||
that mail - in particular, to instantly find that one important e-mail you
|
||||
need right now.
|
||||
|
||||
*mu* is a tool for dealing with e-mail messages stored in the
|
||||
[[http://en.wikipedia.org/wiki/Maildir][Maildir]]-format. *mu*'s main purpose is to help you to quickly find the
|
||||
*mu* is a tool for dealing with e-mail messages stored in the [[http://en.wikipedia.org/wiki/Maildir][Maildir]]-format,
|
||||
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
|
||||
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
|
||||
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
|
||||
|
||||
- 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
|
||||
how to set up =mu4e= with Gmail.
|
||||
|
@ -73,23 +91,6 @@
|
|||
|
||||
- [[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
|
||||
: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; }
|
||||
|
||||
.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