Cyrus IMAP is an email, contacts and calendar server
Switch branches/tags
sieve-1.2 pretab posttab dev/hierarchy-separator-r2 dev/hierarchy-separator-r1 dev/alt-namespace-r3 dev/alt-namespace-r2 dev/alt-namespace-r1 cyrus/old-copyright cyrus-sasl-2.1.23 cyrus-sasl-2.1.19 cyrus-sasl-2.1.18 cyrus-sasl-2.1.17 cyrus-sasl-2.1.16 cyrus-sasl-2.1.15 cyrus-sasl-2.1.14 cyrus-sasl-2.1.13 cyrus-sasl-2.1.12 cyrus-sasl-2.1.11 cyrus-sasl-2.1.10 cyrus-sasl-2.1.9 cyrus-sasl-2.1.7 cyrus-sasl-2.1.6 cyrus-sasl-2.1.3 cyrus-sasl-2.1.2 cyrus-sasl-2.1.1 cyrus-sasl-2.0.5 cyrus-sasl-2.0.4 cyrus-sasl-1.5.27 cyrus-sasl-1.5.25 cyrus-sasl-1.5.24 cyrus-sasl-1.5.21 cyrus-sasl-1.5.20 cyrus-sasl-1.5.18 cyrus-sasl-1.5.17 cyrus-sasl-1.5.15 cyrus-sasl-1.5.13 cyrus-sasl-1.5.12 cyrus-sasl-1.5.11 cyrus-sasl-1.5.3 cyrus-sasl-1.4.1 cyrus-sasl-1.3-beta2 cyrus-imapd-3.1.5 cyrus-imapd-3.1.4 cyrus-imapd-3.1.3 cyrus-imapd-3.1.2 cyrus-imapd-3.1.1 cyrus-imapd-3.1.0-dev cyrus-imapd-3.0.8 cyrus-imapd-3.0.7 cyrus-imapd-3.0.6 cyrus-imapd-3.0.5 cyrus-imapd-3.0.4 cyrus-imapd-3.0.3 cyrus-imapd-3.0.2 cyrus-imapd-3.0.1 cyrus-imapd-3.0.0 cyrus-imapd-3.0.0-rc4 cyrus-imapd-3.0.0-rc3 cyrus-imapd-3.0.0-rc2 cyrus-imapd-3.0.0-rc1 cyrus-imapd-3.0.0-beta6 cyrus-imapd-3.0.0-beta5 cyrus-imapd-3.0.0-beta4 cyrus-imapd-3.0.0-beta3 cyrus-imapd-3.0.0-beta2 cyrus-imapd-3.0.0-beta1 cyrus-imapd-2.5.12 cyrus-imapd-2.5.11 cyrus-imapd-2.5.10 cyrus-imapd-2.5.9 cyrus-imapd-2.5.8 cyrus-imapd-2.5.7 cyrus-imapd-2.5.6 cyrus-imapd-2.5.5 cyrus-imapd-2.5.4 cyrus-imapd-2.5.3 cyrus-imapd-2.5.2 cyrus-imapd-2.5.1 cyrus-imapd-2.5.0 cyrus-imapd-2.5-snapshot-autoconf-and-automake cyrus-imapd-2.4.20 cyrus-imapd-2.4.19 cyrus-imapd-2.4.18 cyrus-imapd-2.4.17 cyrus-imapd-2.4.17-caldav-beta10 cyrus-imapd-2.4.17-caldav-beta9 cyrus-imapd-2.4.17-caldav-beta8 cyrus-imapd-2.4.17-caldav-beta7 cyrus-imapd-2.4.17-caldav-beta6 cyrus-imapd-2.4.17-caldav-beta5 cyrus-imapd-2.4.17-caldav-beta4 cyrus-imapd-2.4.17-caldav-beta3 cyrus-imapd-2.4.17-caldav-beta2 cyrus-imapd-2.4.17-caldav-beta1 cyrus-imapd-2.4.16 cyrus-imapd-2.4.15 cyrus-imapd-2.4.14 cyrus-imapd-2.4.13 cyrus-imapd-2.4.13beta1
Nothing to show
Clone or download
ksmurchison Merge pull request #2561 from wolfsage/fix-warnings
Fix "Use of uninitialized..." warnings in installsieve
Latest commit 479f263 Oct 19, 2018
Permalink
Failed to load latest commit information.
backup Close file descriptior in case of error Oct 1, 2018
cmulocal configure.ac: check for GitPython when evaluating doc buildability Jan 22, 2018
com_err/et Spelling (#1959) May 8, 2017
contrib Remove SMakefile dist-old build target and deprecate DRAC support Aug 4, 2017
cunit mboxlist: preserve common intermediate ancestor during rename Oct 16, 2018
depot Remove ALL tabs Jun 15, 2015
doc rename cunit.h to cyrunit.h Jul 14, 2018
docsrc ctl_mboxlist: optionally include intermediary mailboxes in dump Oct 17, 2018
imap autocreate.c: squash compiler warning Oct 19, 2018
imtest Squash SASL callback function pointer compliants Aug 8, 2018
languages/stopwords xapian_wrap.cpp: add stopwords support and support legacy prefixes Nov 4, 2016
lib bsearch: Fix bug with the `memtree_mbox` function. Oct 8, 2018
master master: only limit fds if explicitly asked Oct 2, 2018
netnews Spelling (#1959) May 8, 2017
notifyd use xstrncpy() Aug 8, 2018
perl cyradm: support mailboxes with spaces in getquotaroot Sep 14, 2018
ptclient ptclient: whoops, typos Oct 2, 2018
sieve sieve: HORRIBLE EVIL BAD NO GOOD LEAK WORKAROUND Aug 13, 2018
snmp Remove ALL tabs Jun 15, 2015
timsieved sieve: make listextensions return a const strarray_t Aug 13, 2018
tools Fix "Use of uninitialized..." warnings in installsieve Oct 19, 2018
.gitattributes [Docs] Normalising line endings for docs to lf (unix), removing crlf Apr 19, 2016
.gitignore gitignore generated jmap error files Jul 12, 2018
.indent.pro Add .indent.pro to enforce indent behaviour Feb 17, 2011
.travis.yml build: Install python-pygments to build docs. Feb 19, 2018
COPYING [Docs] Unifying all the various README information into README.md Aug 9, 2016
Makefile.am Makefile.am: fix generation of mailbox_header_cache.h Oct 12, 2018
README.md Show titles against badges. Jun 7, 2017
configure.ac configure.ac: don't have regex detection depend on PCRE Oct 8, 2018
libcyrus.pc.in Remove references to `librt`. May 28, 2017
libcyrus_imap.pc.in configure.ac: Introduce libcyrus_imap.pc.in May 8, 2017
libcyrus_min.pc.in libcyrus_(min,sieve).pc.in: update to contain exec_prefix May 8, 2017
libcyrus_sieve.pc.in libcyrus_(min,sieve).pc.in: update to contain exec_prefix May 8, 2017

README.md

master: Build Status:master stable(3.0): Build Status:3.x IRC


Welcome

This is the Cyrus IMAP Server, version series 3.0.x.

No further development work will progress on anything older than version 2.3. Versions 2.3 and 2.4 still receive security updates, but new features or non-security bugfixes are unlikely to be backported. Version 2.5 still receives security updates and non-security bugfixes. Version 3.0 is under active development.

What is Cyrus

Cyrus is an IMAP server, where IMAP (Internet Message Access Protocol) is a protocol for accessing mail.

The Cyrus IMAP server differs from other IMAP server implementations in that it is generally intended to be run on "sealed" servers, where normal users are not permitted to log in. The mailbox database is stored in parts of the filesystem that are private to the Cyrus IMAP system. All user access to mail is through the IMAP, NNTP, or POP3 protocols.

The private mailbox database design gives the server large advantages in efficiency, scalability, and administrability. Multiple concurrent read/write connections to the same mailbox are permitted. The server supports access control lists on mailboxes and storage quotas on mailbox hierarchies.

Cyrus goals

To be the best open source secure, scalable mail server, providing breadth and depth of functionality across email, contacts, calendar and related messaging services!

How to get Cyrus

Cyrus comes in three flavours:

  1. Our release source tarballs from ftp://ftp.cyrusimap.org/cyrus-imapd/
    • Recommended for most users.
    • These are packaged by the Cyrus team.
    • The docs are pre-built for you in doc/html.
    • They're definitively tagged to a particular release version with up to date release notes.
  2. Raw source from https://github.com/cyrusimap/cyrus-imapd
    • Use this if you need a version of Cyrus that contains an unreleased patch/fix/feature.
    • These bundles require a lot more dependencies to build than a packaged tarball.
  3. Operating System distribution packages.
    • Cyrus IMAP packages are shipped with every major distribution, including but not limited to Fedora, Red Hat Enterprise Linux, CentOS, Scientific Linux, Debian, Ubuntu, openSUSE, Gentoo, Mageia and ClearOS.
    • Please be aware that we don't maintain these packages and as such, some distributions are out of date.
    • If you run into problems with a packed distribution, please contact the source of the distribution.

How to install Cyrus from packaged releases

Please be sure to read the documentation. The latest version is online at http://www.cyrusimap.org, but the version current for this distribution can be found in the doc/ subdirectory.

For Cyrus tarball releases, the basic installation instructions are:

$ ./configure
$ make
$ sudo make install

For more detailed instructions see: doc/html/imap/installation.diy.html#from-tarball

How to install Cyrus from git source

The Cyrus source is available at:

https://github.com/cyrusimap/cyrus-imapd

For version 3.0 or later, please first build Cyrus main dependencies from source (see next section).

The latest development code is on the branch called 'master', and the latest code destined for the stable release is on the branch 'cyrus-imapd-$major.$minor'. So the current stable release is called cyrus-imapd-2.5

Unlike releases, the git repository doesn't have a pre-built ./configure script. You need to generate it with autoreconf:

$ autoreconf -i
$ ./configure
$ make
$ sudo make install

If you need to build a local copy of the docs current to the version of the code, these need to be built: see doc/README.docs

Read through doc/html/imap/developer.html for more detailed instructions on building and contributing. The latest version is online at http://www.cyrusimap.org/imap/developer.html

How to install Cyrus libraries from git source

For version 3.0 or later, it is recommended to also build the main dependencies from source.

If you intend to use Xapian for search, we strongly recommend to use the custom Xapian fork in cyruslibs. However, if this is not an option in your environment, please fetch the latest stable upstream Xapian release. Cyrus will omit custom features such as word boundary analysis for Chinese, Japanese and Korean.

The Cyrus dependencies source is available at:

https://github.com/cyrusimap/cyruslibs

To build and install the libraries, run

$ ./build.sh

By default, all dependencies are installed in /usr/local/cyruslibs. Before compiling Cyrus from git source, make sure to update your environment variables, accordingly. For example:

$ export CYRUSLIBS=/usr/local/cyruslibs
$ export PKG_CONFIG_PATH="$CYRUSLIBS/lib/pkgconfig:$PKG_CONFIG_PATH"
$ export LDFLAGS="-Wl,-rpath,$CYRUSLIBS/lib -Wl,-rpath,$CYRUSLIBS/lib/x86_64-linux-gnu"

For Xapian, either make sure to add $CYRUSLIBS/bin to your PATH, or call Cyrus ./configure script as follows:

$ ./configure XAPIAN_CONFIG="$CYRUSLIBS/bin/xapian-config-1.5" [...]

(If you do not use Xapian from cyruslibs, you'll need to locate the xapian-config binary and substitute XAPIAN_CONFIG accordingly).

Then continue to install Cyrus.

Are you upgrading?

Read doc/legacy/install-upgrade.html

Think you've found a bug or have a new feature?

Fantastic! We'd love to hear about it, especially if you have a patch to contribute.

The best way to make contributions to the project is to fork it on github, make your changes on your fork, and then send a pull request.

Check https://github.com/cyrusimap/cyrus-imapd/issues/ for any outstanding bugs. Old bugs can be found at https://bugzilla.cyrusimap.org/

Our guide at http://www.cyrusimap.org/feedback-bugs.html has all the information about how to contact us and how best to get your change accepted.

Licensing Information

See the COPYING file in this distribution.

Contact us

Whether you have a success story to share, or a bug to file, or a request for help or a feature to add or some documentation to contribute or you'd just like to say hi, we want to hear from you! See http://www.cyrusimap.org/feedback.html for various ways you can get hold of us.