Home
Download
Contribute
Support
Cyrus SASL
Cyrus IMAP
Cyrus IMAP
Cyrus IMAP
Download
Get Cyrus
Distribution Package
CentOS
Debian
Fedora
openSUSE
Red Hat Enterprise Linux
Ubuntu
Build and Install Yourself
Use a release packaged tarball
Use the source from Git
External Tools
Licensing
Release Notes
Stable Version
Development Version
Supported Product Series
Series 3.6
Series 3.4
Series 3.2
Series 3.0
Series 2.5
Development snapshots
Cyrus IMAP 3.7 Tags
Cyrus IMAP 3.5 Tags
Cyrus IMAP 3.3 Tags
Cyrus IMAP 3.1 Tags
Older Versions
Series 1
Series 2: 2.0 - 2.4
Notes for Packagers
Binary naming
Sample configuration files
Predefined configurations
The configuration file for master: cyrus.conf
The configuration file for the various programs: imapd.conf
Services in
/etc/services
Quickstart Guide
Introduction to Cyrus IMAP
What is IMAP?
Quick install
1. Install Cyrus package(s)
2. Setup the cyrus:mail user and group
3. Setting up authentication with SASL
4. Setup mail delivery from your MTA
5. Protocol ports
6. Configuring Cyrus
7. Launch Cyrus
Overview
Features
Security and Authentication
Kerberos Authentication
LDAP Authentication
SQL Authentication
Access Control
Sealed System Design
Mailbox Management
Automatic Creation of Mailboxes
Mailbox Namespaces
Virtual Domains
Mailbox Annotations (METADATA)
Mailbox Distribution
Message Management
Delayed Delete
Delayed Expunge
Message Annotations (METADATA)
Duplicate Message Delivery Suppression
Shared Seen State
Server Side Filtering (Sieve)
Event Notifications
Calendar and Contact (DAV) Collection Management
CalDAV Collections
DAV Components
DAV Collection Management
CardDAV Support
Storage
Mail Spool Partitions
Mailbox Metadata Partitions
Archiving
Quota
Single-Instance Store
Load Management
Cyrus IMAP Murder (Server Aggregation)
Concepts
Access Control Lists
Working with ACLs
Sample ACL
Access Rights
Access Control Defaults
Access Control Identifier (ACI)
Negative Rights
Calculating a Users’ Rights
Login Authentication
Anonymous Login
Plaintext Authentication
Kerberos Logins
Shared Secrets Logins
Quotas
Working with Quotas
Monitor and Repair
Supported Quota Types
Quota Roots
Controlling Quota Behavior
Mail Delivery Behavior
Quota Warnings Upon Select When User Has
d
Rights
Quotas and Partitions
New Mail Notification
Partitions
Specifying Partitions with “create”
Changing Partitions with “rename”
News
POP3 Server
The syslog facility
Mail Directory Recovery
Reconstructing Mailbox Directories
Reconstructing the Mailboxes File
Reconstructing Quota Roots
Removing Quota Roots
Subscriptions
Configuration Directory
Log Directory
Proc Directory
Message Delivery
Local Mail Transfer Protocol (lmtp)
Single Instance Store
Duplicate Delivery Suppression
Sieve, a Mail Filtering Language
Cyrus Murder, the IMAP Aggregator
Setup
Compiling
Setting up dependencies
Required Build Dependencies
Build dependencies for additional functionality
Compile Cyrus
Default build: mail only
Optional dependencies
Compile
Check
Installing Cyrus
Install Cyrus
Optional Components
HTTP modules
Virus Scanner
Setting up syslog
Create Cyrus environment
Set up the cyrus:mail user and group
Authentication with SASL
Mail delivery from your MTA
Protocol ports
Cyrus config files
Optional: Setting up TLS certificates
Prepare ephemeral (run-time) storage directories
Launch Cyrus
Send a test email
Checking CardDAV and CalDAV
Troubleshooting
Upgrading to 3.6
1. Preparation
Versions to upgrade from
Installation from tarball
Storage changes
How are you planning on upgrading?
Do What As Who?
2. Install new 3.6 Cyrus
3. Shut down existing Cyrus
4. Backup and Copy existing data
5. Copy config files and update
6. Upgrade specific items
7. Start new 3.6 Cyrus and verify
8. Reconstruct databases and cache
9. Do you want any new features?
10. Upgrade complete
Special note for Murder configurations
Configuration Guide
Deployment Scenarios
Single Server Deployments
Multi Server Deployments
Cyrus Murder: Server aggregation
The Discrete Murder
The Unified Murder
The Shared Murder
Cyrus Replication
Hosted Environments
Databases
Overview
File list
Storage types
Mailbox Creation Distribution
Selection Mode
Special cases
Partitions Exclusion
Partitions Usage Data Reset
Mailbox Creation Distribution Through
murder
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
Certificates
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
Operations
Man pages
(5) Configuration Files
cyrus.conf
imapd.conf
krb.equiv
(8) System Commands
arbitron
backupd
chk_cyrus
ctl_backups
ctl_conversationsdb
ctl_cyrusdb
ctl_deliver
ctl_mboxlist
ctl_zoneinfo
cvt_cyrusdb
cvt_xlist_specialuse
cyr_backup
cyr_buildinfo
cyr_dbtool
cyr_deny
cyr_df
cyr_expire
cyr_info
cyr_ls
cyr_synclog
cyr_userseen
cyr_virusscan
cyradm
cyrdump
deliver
fetchnews
fud
httpd
idled
imapd
ipurge
lmtpd
lmtpproxyd
masssievec
master
mbexamine
mbpath
mbtool
mkimap
mknewsgroups
mupdate
nntpd
notifyd
pop3d
pop3proxyd
promstatsd
proxyd
ptdump
ptexpire
ptloader
quota
reconstruct
rehash
relocate_by_id
restore
sievec
sieved
smmapd
squatter
sync_client
sync_reset
sync_server
timsieved
tls_prune
translatesieve
unexpunge
(1) User Commands
arbitronsort.pl
dav_reconstruct
httptest
imtest
installsieve
lmtptest
mupdatetest
nntptest
pop3test
sieveshell
sivtest
smtptest
synctest
Administrator Guide
Architecture
System Architecture
Management
File & Directory Locations
Ports and Sockets
Access Control
Quotas
Cyrus Sieve
Cyrus Backups
Cyrus NNTP
Cyrus Prot Layer
Standard Operating Procedures
Cyrus Event Source
Monitoring
Mailbox Distribution
Cyrus Murder
HOWTO: Using an NGINX IMAP Proxy
Tweaking Cyrus 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
Help! There must be an easier way to get all this going…
OpenSSL Version Mismatches
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?
Is it safe to put <configdirectory>/proc and <configdirectory>/lock on a tmpfs filesystem?
How to enable core dumps
Why can I not delete a mailbox as an admin user?
When is What … Deleted, Expired, Expunged or Purged?
Why is deliver.db so large?
I have multiple imapd-SERVICES configured and experience occasional freezes when I try to log in!
How to run gdb on Cyrus components
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!
“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?
Developers
We need your help
Contribute docs
Overview
Documentation Tools
Building the files
Submitting updates
Using GitHub pull requests
Patches through the mailing list
Special Tags
rfc
cyrusman
imap_current_stable_version
Conventions: Man Pages
Synopsis
Examples
Contribute code and tests
Getting Started
Development Process
Overview of Cyrus development environment
GitHub guide
Compiling
Installing Cyrus
Developer Test Environment
JMAP support
System files and Databases
Namespaces: a developer view
Resources
Developer Libraries
Releasing
Releasing Cyrus IMAP
Releasing new builds of ancient Cyrus IMAP versions
Cyrus.Works
About Cyrus Works
How it works
Cyrus Internals
Cyrus APIs
CyrusDB API
cyrusdb API
Index API
Mailbox API
Thoughts & Notes
Notes for backup implementation
Cyrus IMAP Server: Sieve Bytecode
Cyrus CalDAV Scheduling Flowchart
Enabling improved_mboxlist_sort
Cyrus IMAP Server: Notes
Cyrus IMAP Server: Prot Events
Guidance for Developers
Cyrus IMAP Server: Hacking
Cyrus IMAP Server: Internationalization
Cyrus IMAP Server: Locking
Cyrus IMAP Server: Mailbox File Formats
Cyrus IMAP Server: Namelocks
Cyrus IMAP Server: prot layer
Cyrus IMAP Server: Replication Examples
Cyrus IMAP Server: Replication Protocol v2.4+
Cyrus IMAP Server: Special Characters
Cyrus IMAP Server: var directory structure
Unit Tests
Unit Tests
Table of Contents
1. Introduction
2. What Is A Unit Test?
3. Running The Tests
3.6 Debugging A Test
4. Adding Your Own Tests
4.1 Where To Put Your Tests
4.1 Adding A New Suite
4.2 Adding A Test To A Suite
4.3 Suite Setup And Teardown
Support/Community
Found a bug?
Mailing lists
Weekly 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
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
Cyrus SASL
Cyrus SASL
cyrus-imapd-3.6:
Cyrus IMAP
Docs v3.6.6
»
Developers
»
IMAP Developer Guide
»
Developer Libraries
Edit on GitHub
Developer Libraries
¶
List of Libraries
¶
imclient
library