150 lines
6.2 KiB
Org Mode
150 lines
6.2 KiB
Org Mode
#+TITLE:mu
|
|
[[https://github.com/djcb/mu/blob/master/COPYING][https://img.shields.io/github/license/djcb/mu?logo=gnu&.svg]]
|
|
[[https://en.cppreference.com][https://img.shields.io/badge/Made%20with-C/CPP-1f425f?logo=c&.svg]]
|
|
[[https://img.shields.io/github/v/release/djcb/mu][https://img.shields.io/github/v/release/djcb/mu.svg]]
|
|
[[https://github.com/djcb/mu/graphs/contributors][https://img.shields.io/github/contributors/djcb/mu.svg]]
|
|
[[https://github.com/djcb/mu/issues][https://img.shields.io/github/issues/djcb/mu.svg]]
|
|
[[https://github.com/djcb/mu/issues?q=is%3Aissue+is%3Aopen+label%3Arfe][https://img.shields.io/github/issues/djcb/mu/rfe?color=008b8b.svg]]
|
|
[[https://github.com/djcb/mu/pull/new][https://img.shields.io/badge/PRs-welcome-brightgreen.svg]]\\
|
|
[[https://www.gnu.org/software/emacs/][https://img.shields.io/badge/Emacs-28.1-922793?logo=gnu-emacs&logoColor=b39ddb&.svg]]
|
|
[[https://www.djcbsoftware.nl/code/mu/mu4e/Installation.html#Dependencies-for-Debian_002fUbuntu][https://img.shields.io/badge/Platform-Linux-2e8b57?logo=linux&.svg]]
|
|
[[https://www.djcbsoftware.nl/code/mu/mu4e/Installation.html#Building-from-a-release-tarball-1][https://img.shields.io/badge/Platform-FreeBSD-8b3a3a?logo=freebsd&logoColor=c32136&.svg]]
|
|
[[https://formulae.brew.sh/formula/mu#default][https://img.shields.io/badge/Platform-macOS-101010?logo=apple&logoColor=ffffff&.svg]]
|
|
|
|
Welcome to ~mu~!
|
|
|
|
|
|
Latest development news: [[NEWS.org]].
|
|
|
|
With the enormous amounts of e-mail many people gather and the importance of
|
|
e-mail message in our work-flows, it's essential to quickly deal with all that
|
|
mail - in particular, to instantly find that one important e-mail you need right
|
|
now, and quickly file away message for later use.
|
|
|
|
~mu~ is a set of command-line tools for dealing with e-mail messages stored in the
|
|
Maildir-format. ~mu~'s goal is to help you to quickly find the messages you need,
|
|
view them, extract attachments, and so on.
|
|
|
|
After indexing your messages into a [[http://www.xapian.org][Xapian]]-database, you can search them through
|
|
a query language. You can use various message fields or words in the body text
|
|
to find the right messages.
|
|
|
|
Built on top of ~mu~ are some other tools (included in this package):
|
|
|
|
- ~mu4e~: a full-featured e-mail client that runs inside emacs (more below)
|
|
|
|
- ~mu-scm~: bindings for the Guile/Scheme programming language (version 3.0 and
|
|
later)
|
|
|
|
~mu~ is written in C++; ~mu4e~ is written in ~elisp~ and ~mu-scm~ is written in a mix of
|
|
C++ and Scheme.
|
|
|
|
~mu~ is available in many Linux distributions (e.g. Debian/Ubuntu and Fedora)
|
|
under the name ~maildir-utils~; apparently because they don't like short names.
|
|
All of the code is distributed under the terms of the [[https://www.gnu.org/licenses/gpl-3.0.en.html][GNU General Public License
|
|
version 3]] (or higher).
|
|
|
|
* Versions
|
|
|
|
*mu* attempts to balance development speed and stability.
|
|
|
|
Active development takes place on ~master~ (the 1.14 series), and we maintain
|
|
~release/1.12~ as well, for any critical fixes.
|
|
|
|
Every few months, we release a stable version (e.g. ~1.14.0~); development then
|
|
continues in ~master~, with ~-pre<n>~ (e.g. ~1.14.1-pre1~): ~-pre~-suffixed versions
|
|
refer to the current _development_ code, until it is released (and then looses its
|
|
~-pre~ suffix, i.e., becomes the ~1.14.1~ release).
|
|
|
|
Hence, generally we recommend the latest 1.14 release; if you want to avoid any
|
|
changes except critical bug-fixes, use the latest 1.12 [[https://github.com/djcb/mu/releases/][release]]; and finally, if
|
|
you want to track active development, use ~master~.
|
|
|
|
Overall, we try to avoid incompatible changes, but sometimes this is necessary,
|
|
for example to update the versions of required libraries.
|
|
|
|
* Installation
|
|
|
|
Note: building from source is an /advanced/ subject, especially if something goes
|
|
wrong. The below simple examples are a start, but all tools involved have many
|
|
options; there are differences between systems, versions etc. So if this is all
|
|
a bit daunting we recommend to wait for someone else to build it for you, such
|
|
as a Linux distribution. Many have packages available.
|
|
|
|
** Requirements
|
|
|
|
To be able to build ~mu~, ensure you have:
|
|
|
|
- a C++20 compiler (~gcc~ and ~clang~ are known to work)
|
|
- development packages for /Xapian/ and /GMime/ and /GLib/ (see ~meson.build~ for the
|
|
versions)
|
|
- basic tools such as ~make~, ~sed~, ~grep~
|
|
- ~meson~
|
|
|
|
For ~mu4e~, you also need ~emacs~, version 28 or later.
|
|
|
|
Note, support for Windows is very much _experimental_, that is, it works for some
|
|
people, but we can't really support it due to lack of the specific expertise.
|
|
Help is welcome!
|
|
|
|
** Building
|
|
|
|
#+begin_example
|
|
$ git clone https://github.com/djcb/mu.git
|
|
$ cd mu
|
|
#+end_example
|
|
|
|
~mu~ uses ~meson~ for building, so you can use that directly, and all the usual
|
|
commands apply. You can also use it _indirectly_ through the provided ~Makefile~,
|
|
which provides a number of useful targets.
|
|
|
|
For instance, using the ~Makefile~, you could install ~mu~ using:
|
|
|
|
#+begin_example
|
|
$ ./autogen.sh && make
|
|
$ sudo make install
|
|
#+end_example
|
|
|
|
You can of course also run ~meson~ directly (see the ~meson~ documentation for more
|
|
details):
|
|
#+begin_example
|
|
$ meson setup build
|
|
$ meson compile -C build
|
|
$ meson install -C build
|
|
#+end_example
|
|
|
|
* Initial setup
|
|
|
|
Most ~mu~ commands and ~mu4e~ require setting up the database, which is needed only
|
|
once. For this, there is the ~mu init~ command. See its manpage for all the
|
|
details, but could look something like:
|
|
|
|
#+begin_example
|
|
$ mu init --maildir=~/Maildir \
|
|
--personal-address=jim@example.com \
|
|
--personal-address=bob@example.com \
|
|
--ignored-address='.*reply*.'
|
|
#+end_example
|
|
|
|
This creates your database, specifies some of your personal addresses, and some
|
|
addresses (a regular expression) that should be ignored from the contacts-cache
|
|
used for address-autocompletion in ~mu4e~.
|
|
|
|
After this step, we can index our maildir:
|
|
#+begin_example
|
|
$ mu index
|
|
#+end_example
|
|
The first time you do this, it can take a few minutes, depending on how many
|
|
messages you have. Afterwards, you can run ~mu index~ e.g., after retrieving
|
|
messages from a remote server.
|
|
|
|
After that has completed you can try to find some messages with some simple
|
|
queries:
|
|
#+begin_example
|
|
$ mu find hello
|
|
#+end_example
|
|
|
|
* Contributing
|
|
|
|
Contributions are welcome! See the Github issue list and [[IDEAS.org]].
|