Merge branch 'main' of https://github.com/bulwarkmail/webmail
This commit is contained in:
@@ -74,15 +74,21 @@ Built with Next.js and the JMAP protocol.
|
|||||||
- **Threading** — Gmail-style inline expansion with thread navigation
|
- **Threading** — Gmail-style inline expansion with thread navigation
|
||||||
- **Draft auto-save** with discard confirmation
|
- **Draft auto-save** with discard confirmation
|
||||||
- **Attachments** — upload, download, and inline preview
|
- **Attachments** — upload, download, and inline preview
|
||||||
- **Search** — full-text with JMAP filter panel, search chips, and cross-mailbox queries
|
- **Search** — full-text with JMAP filter panel, search chips, cross-mailbox queries, wildcard support, and OR conditions
|
||||||
- **Batch operations** — multi-select, archive, delete, move, tag
|
- **Batch operations** — multi-select with checkboxes, archive, delete, move, tag
|
||||||
|
- **Print** emails directly from the viewer
|
||||||
- **Color tags/labels** and star/unstar
|
- **Color tags/labels** and star/unstar
|
||||||
- **Virtual scrolling** for large mailboxes
|
- **Virtual scrolling** for large mailboxes
|
||||||
- **Quick reply** from the viewer
|
- **Quick reply** from the viewer
|
||||||
|
- **Sender avatars** — favicon-based with negative caching for performance
|
||||||
|
- **Recipient popover** for quick contact interaction
|
||||||
|
- **Folder management** — create, rename, delete folders with icon picker and subfolder support
|
||||||
|
- **Tag counts** — unread and total counts displayed in sidebar
|
||||||
|
|
||||||
### Calendar
|
### Calendar
|
||||||
|
|
||||||
- **Month, week, day, and agenda views** with mini-calendar sidebar
|
- **Month, week, day, and agenda views** with mini-calendar sidebar
|
||||||
|
- **Event hover preview** popover with details
|
||||||
- **Drag-and-drop rescheduling**, click-drag creation, edge-resize (15-min snap)
|
- **Drag-and-drop rescheduling**, click-drag creation, edge-resize (15-min snap)
|
||||||
- **Recurring events** with edit/delete scope (this / this and following / all)
|
- **Recurring events** with edit/delete scope (this / this and following / all)
|
||||||
- **Participant scheduling** — iTIP invitations, organizer/attendee UI, RSVP
|
- **Participant scheduling** — iTIP invitations, organizer/attendee UI, RSVP
|
||||||
@@ -107,25 +113,42 @@ Built with Next.js and the JMAP protocol.
|
|||||||
- **Vacation responder** with date range scheduling and sidebar indicator
|
- **Vacation responder** with date range scheduling and sidebar indicator
|
||||||
- **Email templates** — reusable, categorized, with placeholder auto-fill (`{{recipientName}}`, `{{date}}`, etc.)
|
- **Email templates** — reusable, categorized, with placeholder auto-fill (`{{recipientName}}`, `{{date}}`, etc.)
|
||||||
|
|
||||||
|
### Files
|
||||||
|
|
||||||
|
- **File browser** with JMAP FileNode cloud storage (Stalwart native)
|
||||||
|
- **Upload and download** files with progress tracking and folder upload support
|
||||||
|
- **Folder navigation** with breadcrumb path and tree sidebar
|
||||||
|
- **Grid and list views** with sorting by name, size, or date
|
||||||
|
- **Clipboard operations** — cut, copy, paste, duplicate files
|
||||||
|
- **File preview** for images, text, audio, video, and more
|
||||||
|
- **Favorites and recent files** for quick access
|
||||||
|
- **Bulk operations** — multi-select, delete, move, download
|
||||||
|
|
||||||
### Security & Privacy
|
### Security & Privacy
|
||||||
|
|
||||||
- **External content blocked** by default — trusted senders list for auto-load
|
- **External content blocked** by default — trusted senders list for auto-load
|
||||||
- **HTML sanitization** via DOMPurify with XSS prevention
|
- **HTML sanitization** via DOMPurify with XSS prevention
|
||||||
- **SPF/DKIM/DMARC** status indicators
|
- **SPF/DKIM/DMARC** status indicators
|
||||||
- **OAuth2/OIDC with PKCE** for SSO (Keycloak, Authentik, or built-in)
|
- **OAuth2/OIDC with PKCE** for SSO (Keycloak, Authentik, or built-in), with OAuth-only mode
|
||||||
- **TOTP two-factor authentication**
|
- **TOTP two-factor authentication**
|
||||||
|
- **Account security panel** — manage passwords and 2FA via Stalwart admin API
|
||||||
- **"Remember me"** — AES-256-GCM encrypted httpOnly cookie (opt-in)
|
- **"Remember me"** — AES-256-GCM encrypted httpOnly cookie (opt-in)
|
||||||
- **Security headers** — CSP with per-request nonce, X-Frame-Options, Referrer-Policy
|
- **Security headers** — CSP with per-request nonce, X-Frame-Options, Referrer-Policy
|
||||||
- **Newsletter unsubscribe** (RFC 2369)
|
- **Newsletter unsubscribe** (RFC 2369)
|
||||||
|
|
||||||
### Interface
|
### Interface
|
||||||
|
|
||||||
- **Three-pane layout** — sidebar, email list, viewer
|
- **Three-pane layout** — sidebar, email list, viewer with resizable columns
|
||||||
- **Dark and light themes** with intelligent email color transformation
|
- **Dark and light themes** with intelligent email color transformation
|
||||||
- **Responsive** — desktop sidebar + mobile bottom tab bar
|
- **Responsive** — desktop sidebar + mobile bottom tab bar with tablet support
|
||||||
- **Keyboard shortcuts** — full navigation without a mouse
|
- **Keyboard shortcuts** — full navigation without a mouse
|
||||||
- **Drag-and-drop** email organization between mailboxes
|
- **Drag-and-drop** email organization between mailboxes and tag assignment
|
||||||
- **Right-click context menus**, toast notifications with undo, form validation with shake feedback
|
- **Right-click context menus**, toast notifications with undo, form validation with shake feedback
|
||||||
|
- **Customizable toolbar** position and login page branding
|
||||||
|
- **Configurable logo** with light/dark mode variants
|
||||||
|
- **Settings sync** — preferences synchronized with the server (encrypted)
|
||||||
|
- **Storage quota** display
|
||||||
|
- **Shared folders** — multi-account access
|
||||||
- **Accessibility** — WCAG AA contrast, reduced-motion support, focus trap, screen reader live regions
|
- **Accessibility** — WCAG AA contrast, reduced-motion support, focus trap, screen reader live regions
|
||||||
|
|
||||||
### Internationalization
|
### Internationalization
|
||||||
@@ -140,6 +163,10 @@ Automatic browser detection with persistent preference.
|
|||||||
- **Sub-addressing** — `user+tag@domain.com` with contextual tag suggestions
|
- **Sub-addressing** — `user+tag@domain.com` with contextual tag suggestions
|
||||||
- **Identity badges** in viewer and email list
|
- **Identity badges** in viewer and email list
|
||||||
|
|
||||||
|
### Operations
|
||||||
|
|
||||||
|
- **Automatic update check** — server logs when a newer release is available
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Quick Start
|
## Quick Start
|
||||||
|
|||||||
Reference in New Issue
Block a user