How the-djmaze/snappymail works
SnappyMail is a browser-based email client with separate user and administrator interfaces. A user signs in, works with mail and attachments, manages contacts and account settings, and can edit server-side Sieve filters; encryption and groupware integrations extend that workflow. The graph reflects the provided tree, README capabilities, and sampled storage, Sieve, and Nextcloud code. Frontend and core request wiring was not sampled, so some subsystem connections are intentionally omitted.
Main entry points: Fetch.js User requests · app.js User application · boot.js Client bootstrap · MailBox.js Mailbox screens
Components 27
Web client
- Client bootstrap
dev/boot.js - User application
dev/app.js - Admin application
dev/admin.js - Login screens
dev/Screen/User/Login.js
Mail workflow
- Mailbox screens
dev/Screen/User/MailBox.js - Mail views
dev/View/User/MailBox/MessageView.js - Compose view
dev/View/Popup/Compose.js - Mail models
dev/Model/Email.js - Attachments
dev/Model/Attachment.js
Accounts and settings
- Contacts
dev/Model/Contact.js - User settings
dev/Screen/User/Settings.js - Admin settings
dev/Screen/Admin/Settings.js
Server services
- User requests
dev/Remote/User/Fetch.js - Admin requests
dev/Remote/Admin/Fetch.js - Storage provider
snappymail/v/0.0.0/app/libraries/RainLoop/Providers/Storage.php - File storage
snappymail/v/0.0.0/app/libraries/RainLoop/Providers/Storage/FileStorage.php - File service
snappymail/v/0.0.0/app/libraries/RainLoop/Providers/Files/FileStorage.php - Sieve service
snappymail/v/0.0.0/app/libraries/RainLoop/Providers/Filters/SieveStorage.php - Local data files
Extensions
- Sieve editor
dev/Sieve/View/Filter.js - Encryption options
dev/Stores/User/OpenPGP.js - Kolab support
- Nextcloud integration
integrations/nextcloud/snappymail/lib/Controller/FetchController.php
Other components
- User
- Browser
- Mail servers
- Sieve server
Connections 27
- User → Browser: uses
- Browser → Client bootstrap: loads
- Client bootstrap → User application: starts
- Client bootstrap → Admin application: starts
- User application → Login screens: presents
- User application → Mailbox screens: presents
- User application → User settings: presents
- Admin application → Admin settings: presents
- Mailbox screens → Mail views: displays
- Mail views → Mail models: uses
- Compose view → Mail models: edits
- Compose view → Attachments: manages
- Mailbox screens → User requests: requests
- Login screens → User requests: requests
- User settings → User requests: requests
- Admin settings → Admin requests: requests
- User requests → Mail servers: exchanges mail
- User requests → Storage provider: uses
- Storage provider → File storage: delegates
- File storage → Local data files: reads and writes
- User requests → File service: uses
- User settings → Sieve editor: opens filters
- Sieve editor → User requests: requests
- Sieve service → Sieve server: connects
- Encryption options → Mail views: supports encryption
- Mail servers → Kolab support: supports
- Nextcloud integration → User application: integrates