Full Changelog: https://github.com/kellylford/QuickMail/commits/v0.5.0
QuickMail
A keyboard-first WPF desktop email client for Windows. Multi-account IMAP/SMTP with a unified inbox, conversation threading, and an HTML reading pane.
Features
- Multi-account — connect any number of IMAP/SMTP accounts simultaneously
- Unified inbox — all mail from all accounts in one sorted view
- Conversation view — threads grouped by subject with collapsible tree
- HTML rendering — WebView2 with strict CSP (no email-embedded scripts)
- Keyboard-first — full navigation, reply, forward, and delete.
- Secure credentials — passwords stored in Windows Credential Manager, never in plain text
Requirements
- Windows 10/11 x64
- .NET 8 SDK (to build from source)
- WebView2 Runtime (usually pre-installed on Windows 11)
Build & Run
build.bat # build
build.bat run # build + launch
build.bat publish # self-contained win-x64 exe → publish/
build.bat cleanOr with the CLI:
dotnet run --project QuickMailKeyboard Shortcuts
| Key | Action |
|---|---|
| Ctrl+0 | Focus account list |
| Ctrl+1 | Focus folder list |
| Ctrl+2 | Focus message list / conversation tree |
| Ctrl+3 | Focus reading pane |
| Ctrl+N | New message |
| Ctrl+R | Reply |
| Ctrl+Shift+R | Reply all |
| Ctrl+F | Forward |
| Ctrl+Y | Folder picker |
| Delete | Delete selected message(s) / conversation |
| Escape | Close reading pane |
Project Layout
QuickMail/
├── App.xaml.cs # DI composition root
├── Views/
│ ├── MainWindow.xaml(.cs) # 3-pane layout; keyboard nav; WebView2
│ ├── ComposeWindow.xaml # New / Reply / Forward
│ ├── AccountManagerDialog.xaml
│ └── FolderPickerWindow.xaml # Ctrl+Y quick nav
├── ViewModels/
│ ├── MainViewModel.cs # Master state
│ ├── ComposeViewModel.cs
│ └── AccountManagerViewModel.cs
├── Services/
│ ├── ImapService.cs # IMAP via MailKit; client pool per account
│ ├── SmtpService.cs # Send via MailKit
│ ├── SyncService.cs # Background sync
│ ├── ConversationBuilder.cs
│ ├── AccountService.cs # Persist accounts to %APPDATA%\QuickMail\
│ ├── CredentialService.cs # Windows Credential Manager
│ └── LogService.cs
└── Models/
├── AccountModel.cs
├── MailMessageSummary.cs / MailMessageDetail.cs
├── ConversationGroup.cs
├── MailFolderModel.cs
└── ComposeModel.cs
Dependencies
| Package | Purpose |
|---|---|
| MailKit | IMAP + SMTP |
| CommunityToolkit.Mvvm | ObservableProperty, RelayCommand |
| Microsoft.Web.WebView2 | HTML email rendering |
| AdysTech.CredentialManager | Windows Credential Manager |