Cyrus IMAP is an email, contacts and calendar server

Related tags

App cyrus-imapd
Overview

master: Build Status:master stable(3.4): Build Status:3.4


Welcome

This is the Cyrus IMAP Server, developer version 3.5. This version is under active development, and is not considered "stable".

The current stable series is 3.4.

Versions 3.0 and 3.2 still receive security updates, and some non-security bug fixes.

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 content is through JMAP, IMAP, NNTP, POP3, CalDAV, CardDAV, and WebDAV 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 https://github.com/cyrusimap/cyrus-imapd/releases
    • 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 https://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-3.4

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

GNU Make is required. If you're not on Linux, it might be called 'gmake'.

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 https://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/html/imap/download/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.

Our guide at https://www.cyrusimap.org/support.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 https://www.cyrusimap.org/support.html for various ways you can get hold of us.

You might also like...
A Full-Stack mobile app, including Android & Server, Simple-Poem 简诗. You can write poem in graceful & traditional Chinese style.
A Full-Stack mobile app, including Android & Server, Simple-Poem 简诗. You can write poem in graceful & traditional Chinese style.

JianShi 简诗 A Full-Stack mobile app, including Android side & Server side, Simple-Poem 简诗. You can write poem in graceful & traditional Chinese style.

Watora server

Getting Started Reference Documentation For further reference, please consider the following sections: Official Gradle documentation Spring Boot Gradl

Minecraft JE Server Programming with JS like Skript, Trigger Reactor

mine.js(Developing) Minecraft Java Edition Scripting with JS(V8 Engine) by Netherald How to apply? Download Paper or Bungee Version. and put it to plu

Android application to sync RSS without a server using DecSync
Android application to sync RSS without a server using DecSync

Flym DecSync Flym DecSync is a fork of Flym which adds synchronization using DecSync. To start synchronizing, all you have to do is synchronize your s

Launchy - A custom launcher for our server that installs recommended mods

Launchy Our custom launcher which makes it easier to set up optional mods and in

Movies-db-example - Sample Android application that loads movies data from a remote server

Movies Application Sample Android application that loads movies data from a remo

HyperUPnP is Android Application that lets you to Stream Media from PC, NAS or any other device running UPnP/DLNA compliant media server to your Android Device.

Hyper UPnP Android UPnP/DLNA client Stream Media from PC, NAS or any other device running UPnP/DLNA compliant media server to your Android Device. Int

Simple metrics exporter HTTP server for Prometheus meant to be used for private Discord servers.

Discord Prometheus Exporter Simple metrics exporter HTTP server for Prometheus meant to be used for private Discord servers. Thanks to the creator of

Whitelist Player on Minecraft Server via Twitch Channel Points ✅

TwitchWhitelist This is a customisable 1.8-1.19 Spigot Plugin to Whitelist Players via Twitch Channel Points Rewards. Setup Setup a PaperMC (recommend

Comments
  • calalarmd: Update nextcheck on floating time events when calendar/principal TZ changes

    calalarmd: Update nextcheck on floating time events when calendar/principal TZ changes

    If a user change the TZ on a floating time event with alarms, we may trigger the (next) alarm too late if the change in TZ has a greater offset from UTC (toward the east).

    opened by ksmurchison 0
  • Lock ordering fixes

    Lock ordering fixes

    Hey Ken,

    Here's, I THINK, all the lock ordering fixes that we need. You can check the logic I used to test them with the top commit on https://github.com/cyrusimap/cyrus-imapd/pull/3179 which I just rebased on top of this, and which does all the LOCKERROR syslogs for cases where we try to lock any index files while not holding a user lock.

    I've also rebased this on top of https://github.com/cyrusimap/cyrus-imapd/pull/3859, which already messed with some locking and has been include-in-fastmail for a while.

    In my Cassandane tests, this all works with the lock tracking in place. The big changes are:

    1. we take a global blank username lock for shared folders
    2. we don't do mailboxes.db locking any more for ACL changes, instead we just lock the owner's user lock for everything - this simplifies the locking considerably for ACL changes - that's the first thing I found in Nottingham
    3. we make sure we NEVER try to lock again once we've unlocked an index to stream a fetch response.

    There's also a nice little performance improvement, any FETCH command which doesn't have an implicit SETSEEN doesn't ever need to take an exclusive lock, so it's been changed to only take a shared lock if it's just doing a fetch without a SETSEEN.

    opened by brong 0
  • http_ws.c: proc_register() a WebSocket connection with cmd=

    http_ws.c: proc_register() a WebSocket connection with cmd="WS"

    For differentiating a simple GET request from a long-running WS connection. Helps with tooling that might need to terminate long-running connections for a user.

    opened by ksmurchison 0
  • GitHub CI status badge

    GitHub CI status badge

    Closes #4329

    Switches the status badge in the readme and doc page from travis to github actions

    Currently the badge shows no status for 3.4 branch since it seems the actions have never been ran on that branch. Could someone start a manual run for that branch so the status is shown correctly?

    opened by ire4ever1190 0
Releases(cyrus-imapd-3.6.0)
A Free, open source Contacts Butler App built with kotlin

Contacts Butler Do you have a bunch of contacts that are missing a lot of info such as names, emails, phone numbers, etc? Do you really know the conta

Android Contacts Butlers 1 Nov 30, 2021
Allows usage of vCard resources with the Android contacts provider

vcard4android vcard4android is an Android library that brings together VCard and Android. It's a framework for parsing and generating VCard resources

bitfire web engineering 7 Dec 15, 2022
Android Contacts API Library written in Kotlin with Java interoperability.

Android Contacts API Library written in Kotlin with Java interoperability. No more ContentProviders and cursors. Say goodbye to ContactsContract. Build your own contacts app!

Vandolf Estrellado 463 Jan 2, 2023
A simple calendar with events, customizable widgets and no ads.

Simple Calendar A simple calendar with events and a customizable widget. A simple calendar with optional CalDAV synchronization. You can easily create

Simple Mobile Tools 3k Jan 3, 2023
Material Design Calendar

Etar Calendar Etar (from Arabic: إِيتَار) is an open source material designed calendar made for everyone! Why? Well, I wanted a simple, material desig

Suhail Alkowaileet 74 Nov 30, 2022
Android open source calendar

Etar Calendar Etar (from Arabic: إِيتَار) is an open source material designed calendar made for everyone! Why? Well, I wanted a simple, material desig

null 1.5k Dec 30, 2022
Text to Speech Project for Spring Boot and Kotlin, Auth Server, Python with Fast API (gTTS)

TTS-App Text to Speech Project for Spring Boot and Kotlin, Auth Server, Python with Fast API (gTTS) Python의 gTTS lib를 활용하여 텍스트를 음성으로 변환하는 서비스를 구현해봅니다.

Seokhyun 7 Jan 7, 2022
🚧 A fully open-source project for creating and maintaining a Kotlin-based Minecraft: Java Edition server.

Hexalite: Java Edition ⚠️ WARNING: The Hexalite Network is a work in progress. It is not yet ready for production. You may encounter bugs and other is

Hexalite Studios 38 Nov 28, 2022
🚧 A fully open-source project for creating and maintaining a Kotlin-based Minecraft: Java Edition server.

Hexalite: Java Edition ⚠️ WARNING: The Hexalite Network is a work in progress. It is not yet ready for production. You may encounter bugs and other is

Hexalite Network 38 Nov 28, 2022
Synapse Moderation Bot - A bot for managing and moderating our community Discord server

Synapse Moderation Bot A bot for managing and moderating our community Discord server. Note This bot is not public. While you can host it on your own,

Synapse Technologies, LLC 1 Jul 16, 2022