Multi-Account Management
Multi-Account Management & Authentication
DodaMail supports an unlimited number of concurrent email accounts across disparate email providers (Gmail, Microsoft Outlook / Office 365, Yahoo, Fastmail, and self-hosted Dovecot/Postfix servers). Each account operates with independent IMAP polling loops, SMTP transmission channels, and color-coded visual badges.
The Account Setup Dialog (AccountSetupModal.tsx)
To add an account, navigate to Settings -> Accounts -> Add Account or click the account selector at the top of the sidebar and select + Add Account.
Control-by-Control Breakdown
Every control, input box, toggle, and command button within the Account Setup dialog is documented below:
| # | Control Name | Control Type | Default Value | Comprehensive Description & Behavior |
|---|---|---|---|---|
| 1 | Account Display Name | Text Input | Empty |
The human-readable label used to identify this account across the DodaMail interface (e.g., Work Email, Personal Gmail, or Support Desk). This label does not affect server protocols. |
| 2 | Email Address | Email Input | Empty |
The full email address (e.g., [email protected]). DodaMail automatically parses the domain name to auto-configure standard IMAP and SMTP server hosts. |
| 3 | Provider Preset Selector | Segmented Control / Radio | Custom IMAP/SMTP |
Provides three pre-configured provider profiles:
|
| 4 | Incoming Server (IMAP Host) | Text Input | Auto-detected | The fully qualified domain name (FQDN) or IP address of the incoming IMAP server (e.g., mail.domain.com or imap.fastmail.com). |
| 5 | Incoming Port | Numeric Input | 993 |
The network port for incoming IMAP connections. Typically 993 for SSL/TLS, or 143 for STARTTLS. |
| 6 | Incoming Encryption | Dropdown Selector | SSL/TLS |
Encryption handshake protocol for IMAP:
|
| 7 | Outgoing Server (SMTP Host) | Text Input | Auto-detected | The fully qualified domain name or IP address of the outgoing SMTP transmission server (e.g., smtp.domain.com). |
| 8 | Outgoing Port | Numeric Input | 465 |
The network port for outgoing SMTP delivery. Standard options are 465 (SSL/TLS implicit) or 587 (Submission STARTTLS). |
| 9 | Outgoing Encryption | Dropdown Selector | SSL/TLS |
Encryption protocol for SMTP delivery:
|
| 10 | Username / Login ID | Text Input | Mirrors Email | The authentication identity expected by the server. If left blank, DodaMail defaults to the full Email Address entered in Control #2. |
| 11 | Password / App Password | Password Input | Empty |
The authentication secret. Includes a reveal toggle (eye icon) to inspect entered text. For Gmail and Outlook with 2FA enabled, an App Password must be provided. |
| 12 | “Show / Hide Password” | Icon Button | Hidden (Masked) |
Toggles between type="password" (bullet characters) and type="text" (visible characters). |
| 13 | Store in OS Credential Vault | Toggle Switch | Checked (Enabled) |
When enabled, the account password is encrypted and stored in your operating system’s native keychain (GNOME Keyring, Windows Credential Manager, or macOS Keychain). When disabled, credentials remain in local sandboxed storage. |
| 14 | Account Color Badge | 10-Color Palette Swatch | Blue (#3B82F6) |
Assigns a distinctive visual color tag to this account. All message threads, badges, and avatars originating from this account will be rendered with this color across the unified inbox. |
| 15 | Set as Default Account | Checkbox | Unchecked |
When enabled, this account will automatically be selected in the “From” dropdown when launching a new message composer. |
| 16 | “Test Connection” | Secondary Action Button | Enabled | Initiates a live handshake with both the IMAP server and SMTP server using the provided credentials. Displays real-time progress spinners and outputs diagnostic messages if connection fails. |
| 17 | “Save Account” | Primary Action Button | Enabled | Validates all required inputs, writes the profile to the SQLite database, stores the password in the Keyring Vault, and initiates the initial mailbox synchronization. |
| 18 | “Cancel” | Secondary Action Button | Enabled | Aborts account configuration, clears input buffers, and returns to the previous screen without saving changes. |
The Keyring Authentication Dialog (KeyringAuthModal.tsx)
When DodaMail launches or accesses an account whose credentials reside in an encrypted OS Keyring Vault, the application may display the Keyring Authentication Dialog if the system session requires verification.
Controls on the Keyring Auth Dialog
| Control Name | Control Type | Description |
|---|---|---|
| “Master Password / Keyring Passphrase” | Secure Password Input | Accepts the user’s OS keyring unlocking passphrase or master encryption key. |
| “Remember for this Session” | Checkbox | When checked, holds the unlocked vault handle in volatile memory for the duration of the current application runtime, preventing repetitive password prompts during background mail syncs. |
| “Unlock Vault” | Primary Button | Submits the passphrase to the native Rust keyring binding. Upon success, loads account tokens and dismisses the dialog. |
| “Work Offline” | Secondary Button | Postpones credential retrieval and opens DodaMail in read-only offline mode using cached local SQLite data. |
Managing Accounts in Settings
Navigate to Settings -> Accounts to view and configure all registered email profiles:
Controls in the Accounts Table
- Account List View: Displays every configured account with its color badge, email address, server type (IMAP/SMTP), sync status, and a “Default” pill tag.
- “Edit Account” Button (Pencil Icon): Re-opens the Account Setup dialog pre-populated with existing parameters, allowing you to update passwords, server hosts, ports, or color tags.
- “Make Default” Button (Star Icon): Elevates the selected account to the primary sending identity for all new outgoing messages.
- “Sync Now” Button (Refresh Icon): Forces an immediate IMAP poll of the selected account, ignoring the regular polling interval.
- “Delete Account” Button (Trash Icon): Triggers a confirmation dialog. Removing an account purges its cached IMAP folders and credentials from the local SQLite database. Note: Messages on the remote server remain unaffected.
Account Switcher & The Unified “All Inboxes” Stream
The top-left of the sidebar features the Account Switcher Dropdown:
+------------------------------------------+
| [*] All Inboxes (Unified View) (34) |
|------------------------------------------|
| [o] Work: [email protected] (21) |
| [o] Personal: [email protected] (13) |
| [o] Projects: [email protected] (0) |
|------------------------------------------|
| [+] Add Another Account... |
+------------------------------------------+- All Inboxes (Unified Mode): Merges all incoming messages across all configured accounts into a single chronological timeline. Each thread card displays its account color badge to easily differentiate sources.
- Single Account Filter: Selecting a specific account isolates the sidebar folders, thread list, labels, and search index to that account alone.
- Real-Time Status Indicator: A green dot indicates active IMAP connection; amber indicates syncing in progress; red indicates authentication failure or network timeout.
Provider-Specific Configuration Guides
1. Google Workspace & Gmail
Due to Google’s enhanced security policies:
- Ensure IMAP Access is enabled in Gmail settings (
Settings -> Forwarding and POP/IMAP -> Enable IMAP). - If your Google account has 2-Factor Authentication (2FA) enabled, create an App Password:
- Go to
https://myaccount.google.com/apppasswords. - Select App:
Mail, Device:Windows Computer(orMac/Linux). - Copy the 16-character generated password and paste it into DodaMail’s Password field.
- Go to
- Use
imap.gmail.com(Port 993, SSL/TLS) andsmtp.gmail.com(Port 465, SSL/TLS).
2. Microsoft 365 / Outlook.com
- Use
outlook.office365.com(Port 993, SSL/TLS). - Outgoing SMTP:
smtp.office365.com(Port 587, STARTTLS). - For accounts requiring modern authentication or app passwords, generate an App Password from
https://account.live.com/proofs/AppPassword.
3. Self-Hosted & Custom Domains (Dovecot / Postfix / cPanel)
- In the Provider Preset, choose
Custom IMAP/SMTP. - Enter your mail server domain (e.g.,
mail.yourdomain.com). - Set IMAP port to
993(SSL/TLS) and SMTP port to465(SSL/TLS) or587(STARTTLS). - Click Test Connection to confirm SSL certificate validation before saving.