Raven MDA v0.1.0
🪶 Raven MDA – Release Notes
Version: v0.1.0
Release Date: 2025-10-09
✨ Overview
Raven is a lightweight Message Delivery Agent (MDA) and IMAP server written in Go.
This release introduces a unified IMAP command dispatcher, improved client handling,
and a cleaner modular structure for future extensibility.
🚀 New Features
-
Unified Client Command Handler (
handleClient)
Routes all IMAP commands through a centralized switch, improving maintainability. -
Supported IMAP Commands
Implemented core commands:
CAPABILITY, LOGIN, AUTHENTICATE, LIST, LSUB, CREATE, DELETE, RENAME, SELECT, EXAMINE, FETCH, SEARCH, STATUS, UID, IDLE, NAMESPACE, UNSELECT, APPEND, NOOP, LOGOUT, STARTTLS
- Standardized Response System
AddedsendResponse()for consistent and clear IMAP replies.
🛠️ Improvements
-
Safe Logging:
Message bodies and headers are now masked in logs for better security and readability. -
Connection Stability:
Added a 30-minute read timeout to prevent idle connections from hanging indefinitely. -
Error Handling:
Invalid or incomplete client commands now return standardized IMAPBADresponses. -
Code Structure:
Command handlers split into separate methods for modularity and testing.
🧠 Technical Notes
- Responses now comply more closely with RFC 3501 (IMAPv4rev1) format.
- Logging enhanced with contextual information (
Client:andServer:prefixes). - Ready for integration with Raven's SQLite storage layer for mail persistence.
🪶 About Raven
Raven is designed to be fast, modular, and storage-agnostic —
ideal for developers who want to integrate relational databases as mail storage backends.