Your donations are always welcome and appreciated!
Arca NoaeYandex

IMAP4 Server

IMAP4 server designed to run in conjunction with the Weasel mail server. It also includes a POP3 server. Encrypted connections are supported.

Download

History of changes

2022-03-01 ver. 0.1.16
  - Fixed a bug due to which the program exited when the SSL negotiation
    failed.

2022-01-28 ver. 0.1.15
  - Fixed a bug that caused the program to crash when requested via the local
    control protocol in single-domain mode.
  - Corrections have been made to reduce the number of file system accesses.
  - The rxsf.dll library is built by Open Watcom C. Previously, GCC was used
    for compilation.
  - Updated imapStage4.cmd script (Weasel filter).

2019-12-03 ver. 0.1.14
  - Fixed a bug when disconnecting during POP3 authorization.

2019-07-04 ver. 0.1.13
  - Optimization of the operation of the pipes transmitting log from Weasel.
  - Version number in usage information (command line switch -?).
  - Shared named pipe interface for the control protocol.
  - A new filter imapStage4.cmd for Weasel.

2019-06-14 ver. 0.1.12
  - Several optimizations of data transmission over sockets.

2019-06-11 ver. 0.1.11
  - Reading Weasel log from alternative named pipes. Redirecting the Weasel log
    to the new named pipes.
    See the new format for -w command-line switch.
  - Removed own high memory manager. Linked with switch -Zhigh-mem.

2019-03-05 ver. 0.1.10
  - The potential threat of blocking a mailbox when accessing via the POP3
    protocol after accessing via IMAP has been eliminated.
  - Added file imapd.xqs for Execptq.

2018-11-20 ver. 0.1.9
  - The order of the values of ServerPort and TimeOut configuration keys has
    changed in recent versions of Weasel. Corresponding changes for IMAPD are
    made.
  - Minor changes in readme.txt.

2018-11-17 ver. 0.1.8
  - IMAP4 service did not go into the "enabled" state with modern versions of
    Weasel. The meaning of bits of configuration [$SYS]/Enable key has changed.
    Fixed.
    Therefore, this version of IMAPD should be used with new versions of Weasel
    (2.48c and higher).
  - If configuration key [$SYS]/MailRoot is not set, then the value
    ".\MailRoot\" is used.

2018-05-13 ver. 0.1.7
  - Fixed a potential deadlock during CRAM-MD5 authorization.

2018-05-11 ver. 0.1.6
  - The contents of INBOX were not filled for the new user if the first was
    command STATUS INBOX (...) instead SELECT INBOX - fixed.
  - Request STATUS INBOX (UNSEEN) returned the sequence number of the first
    UNSEEN flagged message instead of the number of unread messages - fixed.

2017-12-15 ver. 0.1.5
  - Applying disk quotas to new domains and users - fixed.

2017-11-21 ver. 0.1.4
  - Fixed bug in <MailRoot>\imap.xml loading procedure after the user deletion.

2017-11-15 ver. 0.1.3
  - Delayed responces: POP3 and IMAP4 - on invalid username/password, IMAP4 -
    for "BAD" responces.

2017-11-09 ver. 0.1.2
  - Fixed two bugs in mail storage scannings procedures.
  - New log records (for storage scanning time), loglevel increased for some
    annoying log records.

2017-11-01 ver. 0.0.10
  - Mail storage/domain/user disk quotas.
  - QUOTA extension [RFC 2087] is implemented.
  - MOVE extension [RFC 6851] is implemented.
  - RFC 5530 response codes.
  - Domain aliases in the username is allowed now.
  - New commands for protocol to control imapd on local named sockets.
  - Examples (REXX) for the local control protocol.
  - A new imapStage4.cmd script.
  - POP3 server.
  - Plain-text passwords is not allowed by default now, switch -E is deprecated.
  - Generic network server optimization.
  - readme.txt updates.
  - Default file names for SSL certificate and key changed to imapd.crt and
    imapd.key.

2017-10-07 ver. 0.0.9
  - SSL connections support (for clients who want to use a secure connection
    but can not use STARTTLS).
  - More detailed log record about client connection.

2017-10-06 ver. 0.0.8
  - Delayed imap.xml files saving on CHECK command and the session close.
  - The Dirty flag for loaded user home directory objects to avoid rewrite
    imap.xml files without changes.
  - Keep several home directory objects loaded even if they do not have open
    sessions.
  - IDLE command moved to Authenticated/Selected State from Selected State as
    required by RFC 2177.
  - A new fast high memory manager.
  - Increased use of high memory.
  - Fixed incorrect weasel.INI/weasel.TNI load default order (before checking
    configured TNI/INI type).
  - gcc optimizations: -march=pentium -msse -O3
  - There was no client notification about changes in mailbox (RECENT/EXISTS)
    on APPEND - fixed.
  - Fixed several minor bugs.

2017-09-28 ver. 0.0.7
  - IMAP4 IDLE command [RFC 2177] is implemented.
  - UIDPLUS extension [RFC 4315] is implemented.

2017-09-27 ver. 0.0.6
  - Hotfix for messages without/invalid Content-Type header filed.

2017-09-26 ver. 0.0.5
  - ROTATE signal for the command-line switch -s
  - Asynchronous EXISTS and EXPUNGE responses.
  - Protocol to control imapd on local named sockets.
  - Stage 4 filter for Weasel.
  - Fast-tracking incoming messages with Weasel detailed log pipe (sw. -w).
  - readme.txt updates.

2017-09-21 ver. 0.0.4
  - Store changed data to imap.xml files on killing imapd or crash.
  - A new command-line switch -s to send signals to the runned imapd.

2017-09-20 ver. 0.0.3
  - Fixed: Switch between TNI/INI during imapd execution causes reloads Weasel
    configuration every 5 sec.
  - Authentication mechanism CRAM-MD5 implemented.
  - LOGIN and plain-text authentication which does not accord with CAPABILITY
    was alowed - fixed.
  - "Bad password limit" option on the Options 1 page of Setup now applied.
  - Close sessions on series of "BAD" responces.
  - "Identifying a POP3 user" -> "Accept only the first username/domain match"
    option on the Options 2 page of Setup now applied.

2017-09-19 ver. 0.0.2
  - Added support for TNI files.
  - Fixed false positive events "all threads are busy".
  - Fixed a crash on command syntax errors.

2017-09-18 ver. 0.0.1
  - First public test version.