Home
Download
Contribute
Support
Welcome to Cyrus
Introduction to Cyrus IMAP
What is IMAP?
IMAP Features
Security and Authentication
Kerberos Authentication
LDAP Authentication
SQL Authentication
Pre-requisites
Database structure
PAM configuration for use with saslauthd
Testing the SASL configuration
Create the test mailboxes within Cyrus
Testing everything together
Access Control
Discretionary Access Control
Sealed System Design
Mailbox Management
Automatic Creation of Mailboxes
Autocreation of mailboxes
Automatic quota settings
Autocreation of Sieve scripts
Automated folder subscriptions
Autocreation of users
Mailbox Namespaces
Namespace Convention:
netnews
Namespace Convention: “not netnews”
Alternate Namespace
Internal Namespace
Administrator Namespaces
Personal Namespace
Other Users Namespace
Shared Namespaces
Mailbox Annotations (METADATA)
Mailbox Distribution
Partition Selection Mode
Backend Selection Mode (Cyrus IMAP Murder)
Message Management
Delayed Delete
Configuring Cyrus IMAP for Delayed Delete
Delayed Expunge
Configuring Cyrus IMAP for Delayed Expunge
Message Annotations (METADATA)
Duplicate Message Delivery Suppression
Shared Seen State
Server Side Filtering (Sieve)
Event Notifications
Available Event Notifications
Example Event Notifications
Storage
Mail Spool Partitions
Storage Tiering with Partitions
Restricting Storage Used with Partitions
Mailbox Metadata Partitions
Quota
Single-Instance Store
Load Management
Cyrus IMAP Murder (Server Aggregation)
Use-Cases for the Cyrus IMAP Murder
Cyrus IMAP Murder Topologies
Support
Reporting Bugs
Mailing Lists
Archives
Subscribe/Unsubscribe
Digest Lists
IRC Chat
Online Meetings
About
What is Cyrus
What is Cyrus
What is IMAP?
IMAP Version 4 (IMAP4)
Mime
SMTP
Who Is Cyrus
Core Contributors
Individual contributors and past contributors
Cyrus Roadmap
High Level Roadmap
2.6 (Future)
2.5
2.4.x
2.2.x and 2.3.x
pre 2.2
Cyrus History
Cyrus Bylaws
I. The Cyrus Governance Board
II. The Cyrus Core Developers Group
III. The Release Engineer
IV. The Cyrus Roadmap
V. Development Process
VI. Changes to the Bylaws
Administrators
IMAP Installation Guide
Installation Using Packages
CentOS
Other Versions of Cyrus IMAP
Debian
Fedora
Other Versions of Cyrus IMAP
openSUSE
Red Hat Enterprise Linux
Other Versions of Cyrus IMAP
Ubuntu
Open Build System Packages
2.5 Series
2.4 Series
Build and Install Yourself
Do It Yourself
From GIT
From Tarball
Build Dependencies
Configure the Build
External Tools
Licensing
IMAP Configuration Guide
A Guide to Planning a Cyrus IMAP Deployment
Contents
Overview and Concepts
Cyrus IMAP
Cyrus IMAP Features
Initial ACLs for Newly Created Mailboxes
Login Authentication
Quota
HTML Block that was commented out in XML
Partitions
Deployment Scenarios
Single Server Deployments
Multi Server Deployments
Cyrus IMAP Murder
The Discrete Murder
The Unified Murder
The Shared Murder
Cyrus Replication
Hosted Environments
Mailbox Creation Distribution
Mailbox Creation Distribution
Selection Mode
Usage convergence
Computed weight
Special cases
What happens when two partitions are equal as most fitting?
What happens when two partitions point to the same device?
Partitions Exclusion
Partitions Usage Data Reset
Mailbox Creation Distribution Through
murder
frontend
Selection Mode
Available Selection Modes on Frontend
Backends Exclusion
Backends Usage Data Reset
Known Protocol Limitations
POP3 and Mailbox Locking
Cyrus IMAP POP3 Implementation
Authentication and Authorization
Client Authentication
Users and Mailboxes
Performance Recommendations
Databases on Temporary Filesystems
Storage Considerations
General Notes on Storage
Redundancy
Availability
Performance
Scalability
Capacity
Cost
Supported Platforms and System Requirements
Building Cyrus IMAP
Required Software Components
Recommended Software Components
Recommended Software Components Enabled by Default
IMAP Administrator Guide
Overview
System Architecture
High Level Architecture
Cyrus Murder
Replication
Invoking Cyrus
Management
Cyrus Murder
Cyrus Murder: Concepts
Cyrus Murder: Installation and Administration
Cyrus Murder Mupdate Details
Cyrus Murder Failure Modes
Cyrus Murder Mail Delivery
Access Control
Combining Access Rights
Access Control Defaults
Access Control Lists Rights Reference
Discretionary Access Control
Cyrus NNTP
Overview
NNTP Setup
Defining Newsgroups
Configuration
Further information
Cyrus Prot Layer
Events
Cyrus Sieve
Introduction
Installing Sieve
Managing Sieve Scripts
Testing the sieve server
Cyrus Sieve Support
Writing Sieve
Standard Operating Procedures
Replication: Installation and Administration
Mailbox Operations
Reloading Cyrus IMAP Services
Alternative Namespace
Database Conversion, Export and Import
Deleting and Undeleting Messages and Folders
Cyrus Virtual Domains
Running Cyrus IMAP Services on Non-Standard Ports
Reconstructing Mailboxes
Using Squatter for Faster IMAP SEARCH
Splitting Metadata from Partitions
Managing user_deny.db
Cyrus Event Source
Overview
Compile options
Configuration options
Event Types
Accessing events
Apple Push Service
Mailbox Distribution
Selection Modes
Special cases
Application
HOWTO: Using an NGINX IMAP Proxy
Tweaking Cyrus IMAP
Storage Tiering
Synchronous File Operations
References
Administrative Commands & Utilities
List of Configuration Files, Formats and Settings
List of System Command-line Utilities
List of User Command-line Utilities
Work-in-Progress
PyCyrus Commands & Utilities
undelete-mailbox
Tools & Utilities
arbitron
arbitronsort.pl
chk_cyrus
convert-sieve.pl
ctl_cyrusdb
ctl_deliver
ctl_mboxlist
cvt_cyrusdb
cvt_cyrusdb_all
cyr_dbtool
cyr_df
cyrdump
cyr_expire
fetchnews
cyr_sequence
cyr_synclog
cyr_userseen
masssievec
mbexamine
mbpath
migrate-metadata
mkimap
mknewsgroups
rehash
translatesieve
undohash
upgradesieve
Access Control Lists Rights Reference
Other
Notes for Packagers
Services in
/etc/services
IMAP Frequently Asked Questions
Features
Which database backend should I use for which databases?
Duplicate Delivery Suppression
Installation Problems
Compilation errors about kssl.h and krb5.h on Red Hat Linux/Fedora
Problems detecting Berkley DB on Red Hat Linux
Help! There must be an easier way to get all this going...
Common Feature Requests
Does the Cyrus Murder support High Availability configurations?
Can I configure pop3d to log amount and size of messages fetched by user?
How can I make CyrusSieve work with public shared folders?
Can I have subfolders not appear under INBOX?
Common Operational Questions
How do I view ACLs on a mailbox?
What annotations are available?
Why does ctl_cyrusdb -r take so long with Berkeley DB?
Is it safe to put configdir/proc and configdir/lock on a tmpfs filesystem?
Is the “db3: x Lockers” log message harmful?
Why can I not delete a mailbox as an admin user?
When is What ... Deleted, Expired, Expunged or Purged?
Users and IMAP Clients Deleting Messages
Deleting Folders
Where are the Messages?
Why is deliver.db so large?
I have multiple imapd-SERVICES configured and experience occasional freezes when I try to log in!
Cyrus delivers claims that the mailbox does not exist
Why is mail being rejected with No Mailbox found due to MiXed CaSe incoming e-mail?
Can I use MySQL (or another SQL database) as the primary mail store?
Why do POP3 connections take so long, but once the connection is established all is well?
Why does reconstruct -m not work?
Shared File Systems GPFS for high availability
How to enable telemetry
The process count keeps growing!
1. Reuse count
2. Maximum child count
3. Clean up connections that are no longer in use
“unable to join environment” error
Why does Cyrus set the MAIL FROM address of the sender of vacation responses to ‘<>’?
Common Interoperability Problems
Why does Cyrus reject 8-bit characters in the headers of my messages?
Why does Cyrus reject messages with “bare newlines”?
How do I get Cyrus Sieve to play nice with Exim?
Why does mail delivery go slow or hang sometimes?
IMAP Release Notes
Currently Stable Version
Current Development Version
Currently Supported Product Series
Series 2.5
Cyrus IMAP 2.5 Releases
Series 2.4
Cyrus IMAP 2.4 Releases
Cyrus IMAP 2.4-caldav Releases
All Versions Going Back Way Back When
Series 1
Cyrus IMAP 1.x Release Notes
Series 2: 2.0 - 2.3
Cyrus IMAP 2.0.x Release Notes
Cyrus IMAP 2.1.x Release Notes
Cyrus IMAP 2.2.x Release Notes
Cyrus IMAP 2.3 Releases
Developers
Contribute
Website Content Contributions
Contribute Code
IMAP Developer Guide
Getting Started
Overview of Cyrus development environment
The pre-requisites
The components
GitHub guide
1. Create a GitHub account
2. Add your ssh key
3. Fork the repository
4. Issue a pull request
Developer Environment Installation
Cyrus
Setting up syslog
Running a basic server
1. Update your system
2. Install Cyrus 3rd party dependencies
3. The cyrus:mail user
4. Setting up authentication with SASL
5. Enabling mail delivery with LMTP
6. Protocol ports
7. Configuring Cyrus
8. Launch Cyrus
Optional: Setting up SSL certificates
Sending a test email
Checking carddav
Checking caldav
Troubleshooting
Developer Test Environment
Installing Cassandane
Rebuild Cyrus for Testing
Running the tests
Tips and Tricks
Development Process
Coding Style
Making changes
Useful Developer Information
Community Participation
System Architecture
High Level Architecture
Cyrus Murder
Replication
Invoking Cyrus
JMAP support
Cyrus administration
JMAP client
JMAP implementation in Cyrus
Contributing to documentation
Overview
Documentation Tools
Checking the files
Submitting updates
Special Tags
Conventions: Man Pages
Resources
Developer Libraries
List of Libraries
Cyrus SASL
SASL Getting Started
SASL
SASL Authentication Mechanisms
Security Layers
Channel Binding
Realms
Protocols
Cyrus SASL
The Glue Library
Auxiliary Properties
Plugins
SASL Auxiliary Properties
Auxiliary Properties and the Glue Layer
Passwords and other Data
sasldb
ldapdb
sql
User Canonicalization
SASL Authentication Mechanisms
EXTERNAL
ANONYMOUS
PLAIN
LOGIN
CRAM-MD5
DIGEST-MD5
SCRAM-SHA-1
GSSAPI
GS2-KRB5
GS2-IAKERB
NTLM
SRP
PSSDSS
OTP
Non-SASL Authentication
SASL Pwcheck
Auxprop
Auxprop-hashed
Saslauthd
Authdaemon
Alwaystrue
Auto Transition
SASL Frequently Asked Questions
What is the difference between an Authorization ID and a Authentication ID?
Why do CRAM-MD5 and DIGEST-MD5 not work with CyrusSaslauthd?
How do I configure OpenLDAP +SASL+GSSAPI?
Why does CyrusSasl store plaintext passwords in its databases?
Why am I having a problem running dbconverter-2 to upgrade from SASLv1 to SASLv2?
Cyrus IMAP and SASL
Docs
»
IMAP Administrator Guide
»
PyCyrus Commands & Utilities
»
undelete-mailbox
undelete-mailbox
ΒΆ