WildDuck is a scalable no-SPOF IMAP/POP3 mail server. WildDuck uses a distributed database (sharded + replicated MongoDB) as a backend for storing all data, including emails.
WildDuck tries to follow Gmail in product design. If there's a decision to be made then usually the answer is to do whatever Gmail has done.
- MongoDB to store all data
- Redis for pubsub and counters
- Node.js at least version 10.0.0
Optional requirements
- Redis Sentinel for automatic Redis failover
- Build tools to install optional dependencies that need compiling
WildDuck can be installed on any Node.js compatible platform.
Every component of the WildDuck mail server can be replicated which eliminates potential single point of failures.
Attachment de-duplication and compression gives up to 56% of storage size reduction.
- Build a scalable and distributed IMAP/POP3 server that uses clustered database instead of single machine file system as mail store
- Allow using internationalized email addresses
- Provide Gmail-like features like pushing sent messages automatically to Sent Mail folder or notifying about messages moved to Junk folder so these could be marked as spam
- Provide parsed mailbox and message data over HTTP. This should make creating webmail interfaces super easy, no need to parse RFC822 messages to get text content or attachments
-
Optimize FETCH queries to load only partial data for BODY subparts
-
Parse incoming message into the mime tree as a stream. Currently the entire message is buffered in memory before being parsed.
-
Maybe allow some kind of message manipulation through plugins
-
WildDuck does not plan to be the most feature-rich IMAP client in the world. Most IMAP extensions are useless because there aren't too many clients that are able to benefit from these extensions. There are a few extensions though that would make sense to be added to WildDuck:
WildDuck Mail Agent is licensed under the European Union Public License 1.2 or later.