Consulting djbware Publications

Binc IMAP (version 2)

What is Binc IMAP?

Binc IMAP is a C++ written IMAP4ver1 server created by Andreas Aardal Hanssen back in 2002. The last 'official' version was 1.2.13final and the last public and incomplete version is labeled 1.3.4.
Binc IMAP is based on the software engineering principles Dan J. Bernstein has raised, though C++ provides choices of a much wider platform.
Binc IMAP in particular supports the Maildir++ format and the virtual mail managers VPopMail and VMailMgr.

After using Binc IMAP for a while, I thought it is important to carry out a modern version based on DJB's /slashpackage deployment infrastructure. This was the birth of Binc IMAP version 2.

Features

Binc IMAP complements as light-weight IMAP server s/qmail's POP3 service using the same interface while providing a common management and logging scheme for SMTP, POP3, and now IMAP services.

The available TLS and X.509 infrastructure can be shared by all these daemons.

Sources

Version & Download Description Verification
Binc IMAP 2.0.16 The third release with small improvements and OmniOS compatibility. MD5: af11ee2fe4176377b047e2e8ad68c7b0
Build: 20240901115844
Binc IMAP 2.0.15 The second release (fully working). MD5: 932b3421554ce64392320717a30d70fd
Build: 20231024185037 (new!)

Binc IMAP 2 's source files are documented in doxygen.

How to install Binc IMAP

Binc IMAP 2 is a self-contained C++ implementation and does not involve particular libraries outside STL and POSIX.

Andreas Aardal Hanssen: Binc IMAP - Goals

"The Binc IMAP project is more than programming. This is a list of the main goals and visions that the author of Binc IMAP has put to ground.

Last updated: 2003-03-24"

In June 2023 Andreas gave me permissions to fork his Binc IMAP and I'm glad being able to follow his approach successfully.

A word of caution

I'm using now BincIMAP 2.0.15 for over one year, on my local system and this server. It works quite well, but ...

These things are under investigation and may harmless in case tools like Charles Cazabon's getmail are used, but not suited for a production environment. If you run BincIMAP, consider softlimit as an insurance to keep your IMAP server at least alive.

These issues can only be fixed with a radical new design and architecture, potentially available in ... BincIMAP ?.?. The current design of BincIMAP is more than 20 years old and completely broken given today's C++ methods and standards.

Documentation

Andreas has generated a LaTeX document for Binc IMAP 1.2 which I used as a blueprint for Binc IMAP 2.0 together with the some miscellaneous materials:

Man pages

Servers Auxiliary
bincimap-up stub bincimap
bincimapd bincimap-updatecache

Release Roadmap

As usual, I follow the 'Semver' principals identifying the current development level of Binc IMAP. Thus, the '2.0.xy' release level is used for changes and bug fixes based on the current code.

Apart from some faint ideas expressed in the doc/TODO file, I consider the following next stepes to get realized:

Tickets, Change Requests, Communication

An EZMLM mailing list keeps you updated with current developments, bug fixes, and features discussed. This list also can be used to file

To inscribe use the: binc mailing list

As usual, I can't guarantee a certain response level; but reasonable issues will be answered.

Working IMAP Clients

I've tested Binc IMAP successfully with the following IMAP clients:

To allow Mutt to access Binc IMAP's remote IMAP INBOX, I use the followig muttrc file:

# Receive set imap_pass = <passwd> set imap_authenticators = "login" set folder = imaps://<user@example.com> set imap_check_subscribed set imap_list_subscribed mailboxes +INBOX +'All Mail' # Folder set spoolfile = +INBOX set postponed = +Drafts set record = +Sent bind index,pager B sidebar-toggle-visible # Macros macro index c "<change-folder>?<toggle-mailboxes>" "open a different folder" macro pager c "<change-folder>?<toggle-mailboxes>" "open a different folder" # Colors color header brightred black subject color hdrdefault brightwhite black color quoted brightgreen black color status black cyan color indicator default green

References

  1. IMAP Requests for Comments (at least partially) supported:
  2. Other Internet sources related to Binc IMAP:
  3. The virtual mailing manager sites: