Skip to content

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., user@example.com). 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:
  • Gmail: Pre-populates imap.gmail.com:993 and smtp.gmail.com:465.
  • Outlook / O365: Pre-populates outlook.office365.com:993 and smtp.office365.com:587.
  • Custom IMAP/SMTP: Leaves server fields editable for private servers, Fastmail, cPanel, etc.
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:
  • SSL/TLS (Implicit SSL - standard on port 993).
  • STARTTLS (Explicit TLS upgrade - standard on port 143).
  • None (Plaintext - strongly discouraged, restricted to local test environments).
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:
  • SSL/TLS (Implicit SSL on port 465).
  • STARTTLS (STARTTLS upgrade on port 587).
  • None (Plaintext port 25 - restricted).
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

  1. Account List View: Displays every configured account with its color badge, email address, server type (IMAP/SMTP), sync status, and a “Default” pill tag.
  2. “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.
  3. “Make Default” Button (Star Icon): Elevates the selected account to the primary sending identity for all new outgoing messages.
  4. “Sync Now” Button (Refresh Icon): Forces an immediate IMAP poll of the selected account, ignoring the regular polling interval.
  5. “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: user@company.com         (21)  |
| [o] Personal: user@gmail.com       (13)  |
| [o] Projects: dev@dodatech.com      (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:

  1. Ensure IMAP Access is enabled in Gmail settings (Settings -> Forwarding and POP/IMAP -> Enable IMAP).
  2. 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 (or Mac/Linux).
    • Copy the 16-character generated password and paste it into DodaMail’s Password field.
  3. Use imap.gmail.com (Port 993, SSL/TLS) and smtp.gmail.com (Port 465, SSL/TLS).

2. Microsoft 365 / Outlook.com

  1. Use outlook.office365.com (Port 993, SSL/TLS).
  2. Outgoing SMTP: smtp.office365.com (Port 587, STARTTLS).
  3. 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)

  1. In the Provider Preset, choose Custom IMAP/SMTP.
  2. Enter your mail server domain (e.g., mail.yourdomain.com).
  3. Set IMAP port to 993 (SSL/TLS) and SMTP port to 465 (SSL/TLS) or 587 (STARTTLS).
  4. Click Test Connection to confirm SSL certificate validation before saving.