RoseMail is a lightweight self-hosted webmail client and email scheduling tool.
Features
- Multi-account email management
- Supports Gmail OAuth, Gmail app passwords, Outlook, 163, and custom IMAP+SMTP accounts
- Automatically groups mail accounts by email domain, with future support for custom groups
- Enable or disable mail accounts, configure scheduled mail polling, manually sync a single account, and test IMAP/SMTP settings
- Automatically checks mail every 5 minutes by default, configurable with
APP_MAIL_POLL_SECONDS=300
- Supports unified inbox across all accounts, group-based viewing, and single-account viewing
- Supports Inbox, Sent, Drafts, Trash, and All Mail views
- Sent mail sync attempts to read remote Sent / Sent Items folders and includes them in All Mail
- Supports mail details, read/unread status, message body display, multi-select, mark as read, move to Trash, and permanent deletion
- Supports attachment storage and download
- Supports compose, reply, forward, manual draft saving, and scheduled auto-save drafts
- Supports sending attachments
- Supports basic search by subject, sender, recipient, snippet, and body
- Supports simple auto-forwarding rules by all accounts, group, or single account, with sender, subject, body, and attachment filters
- Auto-forwarding runs in the background: new mail is matched immediately after sync, and periodic scans handle existing unprocessed mail
- Supports forwarding with attachments,
Fwd: prefix, and forwarding logs
- Includes email scheduling, templates, Excel imports, field mappings, and reports
- Supports GitHub Gist and GitLab Gist/Snippet configuration sync
- Supports light and dark themes
- Supports English, Simplified Chinese, and Traditional Chinese UI languages
Docker Compose
services:
rose-mail:
image: idlecatlabs/rose-mail:0.6.0-amd64
container_name: idlecat-rose-mail
restart: unless-stopped
expose:
- "8000"
environment:
TZ: Asia/Shanghai
APP_ADMIN_USERNAME: admin
APP_ADMIN_PASSWORD: admin123
APP_SECRET_KEY: change-me-in-production
APP_MAIL_POLL_SECONDS: 300
volumes:
- ./data:/app/data
networks:
- idlecat-proxy
networks:
idlecat-proxy:
external: true
Start RoseMail:
docker network create idlecat-proxy
docker compose up -d
RoseMail listens on port 8000 inside the container. Use a reverse proxy such as Nginx to expose it over HTTP/HTTPS.