MailYou is a desktop-first mail client built with Vue, Electron, and a Rust mail backend.
It supports password-based IMAP/SMTP accounts, OAuth-based sign-in for selected providers, local desktop storage, and packaged Linux/Windows builds.
- Desktop app built with Electron and Vue
- Rust backend for mail access and local storage
- IMAP / SMTP account setup with built-in provider presets
- OAuth support for Gmail, Outlook, and iCloud through direct credentials or the MailYou OAuth proxy
- Linux packaging targets including AppImage, deb, rpm, and zip
- Vue 3
- Vuetify
- Electron
- Rust
- Vite
- Pinia
- Node.js
- npm
- Rust toolchain with
cargo
Install dependencies:
npm installStart the desktop app in development mode:
npm run devStart the web target:
npm run dev:webBuild the desktop app and make dist:
npm run distBuild Linux packages:
npm run pack:linux:dir
npm run dist:appimage
npm run dist:deb
npm run dist:rpmBuild Windows packages:
npm run dist:winMailYou supports two OAuth paths:
- Direct OAuth using local provider credentials from environment variables
- Proxy OAuth using the MailYou OAuth proxy
The desktop app uses these built-in defaults:
- Proxy URL:
https://oauth2-proxy.iscccc.cc - Callback protocol:
mailyou://oauth/callback - Proxy token: built in, with environment override support
If direct OAuth is not configured for a provider, MailYou can fall back to the proxy flow.
Configuration is documented here:
Current shared config entry points:
Built-in presets currently cover:
- OAuth-capable domains: Gmail, Outlook, iCloud
- Password-based domains: QQ, Foxmail, 163, 126, Yeah
Unknown domains fall back to manual IMAP / SMTP setup.
src/
config/ Shared app configuration
electron/ Electron main process and desktop integrations
rust/ Rust mail backend
views/ Vue screens
docs/ Project documentation
- OAuth proxy access works out of the box with the built-in public desktop token.
- Packagers can override the proxy URL or proxy token with environment variables.
- Linux dev runs do not register the
mailyou://protocol handler by default unless explicitly enabled. - For Arch packaging, prefer the unpacked directory build from
npm run pack:linux:dir. - The repository root contains a reference
PKGBUILDformailyou-git.