Thanks to visit codestin.com
Credit goes to github.com

Skip to content

yitzhaq/mulberry-main

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

537 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mulberry

Mulberry is a standards-focused desktop email and calendaring client for Linux, macOS, and Windows. Built around IMAP from the ground up, it emphasizes server-side operations — searching, sorting, filtering, and threading happen on the server rather than locally, making it efficient with large mailboxes. It supports IMAP4rev1 (with all 15 mandatory IMAP4rev2 extensions), POP3, SMTP, CalDAV, CardDAV, LDAP, SIEVE, ManageSieve, S/MIME, PGP, and more, with features including multiple account and identity management, IMAP ACLs for shared folders, a GUI for server-side Sieve filtering, offline mail caching, and calendar/address book synchronization.

Mulberry's calendaring and contacts support is equally thorough — its original author co-authored the CalDAV RFC and authored the CardDAV RFC, and Mulberry was an early and complete implementation of both. It works well against modern CalDAV/CardDAV servers such as Nextcloud and Cyrus IMAPd.

The interface is consistent across all three platforms and prioritizes control and efficiency over visual polish.

Current status

Version 4.2a1 — first version with significant development activity in over a decade.

This version brings Mulberry to modern 64-bit Linux (x86_64) with GCC 13+, OpenSSL 1.1–3.x, and current Debian/Ubuntu packaging. It adds IMAP IDLE for instant push notifications, IMAP BINARY for server-side attachment decoding, SPECIAL-USE, MULTIAPPEND, LIST-EXTENDED, LIST-STATUS, SEARCHRES, ESEARCH/ESORT, APPENDLIMIT, STATUS=SIZE, SORT=DISPLAY, and WITHIN extensions — completing all 15 mandatory IMAP4rev2 extensions. It includes comprehensive bug fixes found through static analysis with six tools (cppcheck, clang-tidy, Facebook Infer, GCC extended warnings, CodeQL, and Coverity), improved RFC 3676 format=flowed compliance, Unicode clipboard support, automatic recovery from network connection drops, and recovery of sixteen patches from the original developer's SVN repository.

Since the JX toolkit cannot render characters outside Latin-1, non-ASCII Unicode in messages is now displayed as human-readable text: common emoji as ASCII emoticons, other symbols as CLDR short names, typographic characters as their ASCII equivalents, and mathematical styled letters as plain text. This provides a clean, consistent reading experience for modern email without requiring a Unicode-capable GUI toolkit.

Development and testing focused exclusively on Linux (x86_64, Ubuntu 24.04, GCC 13). Some incidental fixes for Win32 and macOS are included but are entirely untested.

See CHANGELOG.md for the full list of changes.

Building

git clone --recursive https://github.com/yitzhaq/mulberry-main.git
cd mulberry-main

If you cloned without --recursive, run git submodule update --init to fetch the required libraries.

Debian/Ubuntu package (recommended)

sudo apt install build-essential autoconf libssl-dev libldap-dev \
    libaspell-dev libfl-dev libfontconfig-dev libfreetype-dev \
    libpcre3-dev libsodium-dev libunistring-dev libxft-dev libxext-dev libxpm-dev \
    pkg-config python3 unicode-cldr-core zlib1g-dev debhelper
dpkg-buildpackage -us -uc -b

The .deb package appears in the parent directory. This builds everything: the JX toolkit, the application, and all plugins.

Manual build

autoconf
./configure
make
make install

Use make SKIPJX="yes" install to skip rebuilding the JX library after the initial build.

See ./configure --help for options (OpenSSL paths, LDAP paths, Kerberos, aspell).

Architecture

Mulberry uses a three-layer architecture:

Platform UI (Linux/JX, macOS/PowerPlant, Win32/WinAPI)
     |
Sources_Common (platform-independent core)
     |
Libraries (JX, CICalendar, vCard, XMLLib) + Plugins

The platform-independent core in Sources_Common/ implements all protocol clients (IMAP, SMTP, POP3, CalDAV, CardDAV), the message model, address books, calendars, preferences, and text processing. Platform-specific directories provide the GUI layer using each platform's native toolkit.

License

Apache License 2.0. See LICENSE.

History and acknowledgments

Mulberry is the work of Cyrus Daboo, who created it in 1995 and developed it for nearly two decades — first commercially, then as open source. This repository would not exist without his remarkable effort and his decision to release the source. For the full history, including contributions from Martin Dietze (mbert), Kenneth Porter (SpareSimian), Mike Alexander (mtalexander), Lutz Pogrell (lutzpogrell), and Quanah Gibson-Mount (quanah), see CHANGELOG.md.

The 4.2a1 development work was carried out entirely in collaboration with Claude by Anthropic. The owner of this repository is not a C++ developer; all code changes, analysis, and documentation were produced through this collaboration.

About

Standards-focused desktop email and calendaring client (IMAP, CalDAV, CardDAV). Originally by Cyrus Daboo (1995). See README.md.

Topics

Resources

License

Apache-2.0, Unknown licenses found

Licenses found

Apache-2.0
LICENSE
Unknown
license-change.py

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C++ 91.6%
  • C 5.5%
  • Rez 2.0%
  • HTML 0.5%
  • Makefile 0.3%
  • Shell 0.1%