NeoMutt is a command line email client (Mail User Agent). It's fast, powerful and flexible.
The simplest way to obtain NeoMutt is to use your OS's package. See the distro page to see if there's one for you.
The source can be downloaded from our project site on GitHub. It's available as a git repository or a 'tar.gz' archive.
Clone the NeoMutt repository:
git clone https://github.com/neomutt/neomutt
It's recommended to use the latest tagged version. The 'main' branch is used for development and may not be as stable.
The latest release of NeoMutt can be found, here:
All source releases are signed for security. See Signing Releases for details.
To build NeoMutt, you will need, at the very minimum:
- A C99 compiler such as gcc or clang
- SysV-compatible curses library: ncurses
- Some common libraries, such as iconv and regex
- DocBook XSL stylesheets and DTDs (for building the docs)
NeoMutt's build system uses Autosetup. It depends on Tcl and Jim to run its test scripts. If they aren't available, Autosetup will use a version bundled with NeoMutt.
Autosetup's configure.autosetup
performs two tasks. It allows the user to
enable/disable certain features of NeoMutt and it checks that all the build
dependencies are present.
For a list of the currently supported options and a brief help text, run:
./configure.autosetup --help
Configure option | Path | Notes |
---|---|---|
--with-ncurses=path |
Location of ncurses | |
--gpgme |
Path | GPG Made Easy |
--gnutls |
Path | Gnu TLS (SSL) |
--gss |
Path | Generic Security Services |
--sasl |
Path | Simple Authentication and Security Layer |
--ssl |
Path | OpenSSL |
--fmemopen |
Optional Feature (Dangerous) | |
--lua |
Path | Optional Feature |
--notmuch |
Path | Optional Feature |
--mixmaster |
Optional Feature | |
--bdb |
Path | Header cache backend |
--gdbm |
Path | Header cache backend |
--kyotocabinet |
Path | Header cache backend |
--lmdb |
Path | Header cache backend |
--qdbm |
Path | Header cache backend |
--tokyocabinet |
Path | Header cache backend |
--with-lock=CHOICE |
Select 'fcntl' or 'flock' | |
--locales-fix |
Workaround for broken locales | |
--disable-nls |
Path | National Language Support (translations) |
--disable-pgp |
Path | Pretty Good Privacy |
--disable-smime |
Path | Secure/Multipurpose Internet Mail Extensions |
--disable-idn |
Path | Internationalised domain names |
--with-domain=DOMAIN |
Default email domain | |
--with-mailpath |
Path | Location of spooled mail |
--homespool |
Path | Spooled mail is in user's home dir |
--prefix |
Path | Target directory for build (default: /usr ) |
--disable-doc |
Don't build the docs | |
--full-doc |
Document disabled features | |
--quiet |
Only show the summary |
The options marked "Path" have either take a path, or have an extra option for
specifying the library path.
e.g. ./configure --notmuch --with-notmuch=/usr/local/lib/notmuch
The parameter --prefix
is used to specify both the default search path for
headers and libraries and the final directory structure of the installed files.
These are often the same: if you have your dependencies installed in
/usr/include
and /usr/lib
, you also probably want the NeoMutt executable to
end up in /usr/bin
and its documentation in /usr/share/doc
. This behavior
can be tweaked by specifying where 3rd party dependencies are to be found. This
is done on a per-dependency basis using the --with-<dep>=path
family of
options. As an example, a GPGME installation in /opt
can be looked up using
the arguments --gpgme --with-gpgme=/opt
.
The build can be adjusted by setting any of six environment variables:
CC
- set the compilerCFLAGS
- replace all the compiler flagsEXTRA_CFLAGS
- append flags to the default compiler flagsLD
- set the linkerLDFLAGS
- replace all the linker flagsEXTRA_LDFLAGS
- append flags to the default linker flags
e.g. make EXTRA_CFLAGS=-g
Here are the sample commands to configure and build NeoMutt:
./configure --gnutls --gpgme --gss --sasl --tokyocabinet
make
NeoMutt will be installed into the directory configured with --prefix
.
This can be modified using the DESTDIR
make variable, for example when doing
staged builds. DESTDIR
is prepended to the install path.
To install NeoMutt to the configured location, run:
make install
To override the root directory, use the DESTDIR
make variable, e.g.
make DESTDIR=$HOME/install install'
To uninstall NeoMutt from the configured location, run:
make uninstall
To override the root directory, use the DESTDIR
make variable, e.g.
make DESTDIR=$HOME/install uninstall'