mailledger

Crates.iomailledger
lib.rsmailledger
version0.0.2
created_at2026-01-14 14:13:02.085921+00
updated_at2026-01-17 17:35:36.698951+00
descriptionCross-platform desktop email client with custom IMAP implementation
homepagehttps://github.com/mqasimca/mailledger
repositoryhttps://github.com/mqasimca/mailledger
max_upload_size
id2042890
size336,899
Qasim (mqasimca)

documentation

README

MailLedger

Modern, cross-platform desktop email client built with Rust.

Features

  • 📧 Native Email Client: Full-featured desktop email experience
  • 🔒 Secure Authentication: Support for OAuth2 (Gmail, Outlook) and traditional login
  • ⚡ Real-time Sync: IDLE push notifications for instant message updates
  • 🎨 Modern Interface: Clean, responsive UI built with iced framework
  • 🔐 Secure Storage: Credentials stored in system keyring
  • 🌐 Cross-platform: Linux, Windows, and macOS support
  • 🚀 Custom IMAP/SMTP: Built on production-quality Rust implementations

Why OAuth2?

Microsoft permanently disabled Basic Authentication for IMAP/SMTP in April 2026. MailLedger provides full OAuth2 support for modern email providers:

  • ✅ Microsoft Outlook / Office 365
  • ✅ Gmail / Google Workspace
  • ✅ Yahoo Mail
  • ✅ Custom OAuth2 providers

Traditional username/password authentication is still supported for providers that allow it.

Installation

From Source

# Clone the repository
git clone https://github.com/mqasimca/mailledger.git
cd mailledger

# Build the application
cargo build --release

# Run MailLedger
cargo run --release -p mailledger

System Requirements

  • Linux: Wayland compositor (Gnome, KDE Plasma, Sway, etc.)
  • Windows: Windows 10 or later
  • macOS: macOS 10.15 or later

Quick Start

  1. Launch MailLedger

    cargo run --release -p mailledger
    
  2. Add Your Account

    • Click "Add Account" on first launch
    • Choose OAuth2 (recommended) or traditional login
    • Follow the authentication flow
  3. Configure OAuth2 (if using Gmail/Outlook)

  4. Start Using MailLedger

    • Browse folders in the sidebar
    • Read and compose messages
    • Real-time sync with IDLE support

Features in Detail

Email Management

  • Folder Navigation: Access all your IMAP folders
  • Message List: View messages with sender, subject, date, and preview
  • Message Reading: Full HTML and plain text support with inline images
  • Compose: Create and send new messages
  • Reply/Forward: Quick response actions

Security

  • OAuth2 Support: Secure, token-based authentication
  • System Keyring: Credentials stored using OS-native secure storage
  • TLS Encryption: All connections use rustls for secure communication
  • No Password Storage: OAuth2 means no passwords in the app

Performance

  • Real-time Updates: IDLE monitoring for instant message notifications
  • Efficient Sync: Only fetches what's needed
  • Responsive UI: Built with iced for smooth 60fps rendering
  • Fast Startup: Optimized binary with LTO and strip

Architecture

MailLedger is built on a modular architecture:

Development

Building

# Debug build
cargo build -p mailledger

# Release build (optimized)
cargo build --release -p mailledger

# Run with logging
RUST_LOG=debug cargo run -p mailledger

Testing

# Run all tests
cargo test --workspace

# Run specific crate tests
cargo test -p mailledger-imap

Code Quality

# Format code
cargo fmt --all

# Lint with Clippy
cargo clippy --workspace

# Check all together
cargo fmt --all && cargo clippy --workspace && cargo test --workspace

Platform Support

Linux

  • Display: Wayland only (no X11)
  • Keyring: GNOME Keyring or KWallet via Secret Service
  • Tested on: Gnome, KDE Plasma, Sway

Windows

  • Minimum: Windows 10
  • Keyring: Windows Credential Manager
  • Graphics: DirectX 12

macOS

  • Minimum: macOS 10.15 (Catalina)
  • Keyring: macOS Keychain
  • Graphics: Metal

Configuration

Configuration and data are stored in platform-specific directories:

  • Linux: ~/.config/mailledger/ and ~/.local/share/mailledger/
  • Windows: %APPDATA%\mailledger\
  • macOS: ~/Library/Application Support/mailledger/

Roadmap

  • OAuth2 authentication
  • IMAP folder and message browsing
  • Message reading with HTML support
  • Real-time IDLE sync
  • Dark/light theme
  • Message composition and sending
  • Search functionality
  • Multiple account support
  • Offline mode
  • Message filtering and rules

Contributing

Contributions are welcome! Please read the CLAUDE.md for development guidelines.

License

MIT License - see LICENSE for details.

Acknowledgments

Built with:

  • iced - GUI framework
  • tokio - Async runtime
  • rustls - TLS implementation
  • sqlx - Database access
Commit count: 6

cargo fmt