A lightweight, resource-efficient webmail client written in Go, supporting IMAP and SMTP protocols. LilMail emphasizes simplicity and minimal system requirements, with a file-based storage system that eliminates the need for a database.
- 🚀 Simple Setup: Just run the binary - no complex configuration needed
- 💡 Minimal Resource Usage: Designed to run on low-end hardware
- 🗄️ No Database Required: All data stored efficiently on disk
- 📥 IMAP Support: Connect to any IMAP-enabled email server
- 📤 SMTP Integration: Send emails through standard SMTP protocols
- 💾 File-Based Caching: Reliable storage without external dependencies
- 🔒 JWT Authentication: Secure user sessions
- 🔐 Encryption: Built-in encryption for sensitive data
- Memory: 64MB RAM minimum
- Storage: Depends on cache size (approximately 1GB recommended)
- OS: Linux, macOS, or Windows
# Clone the repository
git clone https://github.com/exolutionza/lilmail.git
# Navigate to project directory
cd lilmail
# Run the application
go run main.go
Create a config.toml
file in the root directory:
[imap]
server = "mail.example.com"
port = 993
tls = true
[cache]
folder = "./cache"
[jwt]
secret = "your-secure-jwt-secret"
[encryption]
key = "your-32-character-encryption-key"
[smtp]
# If not specified, SMTP server will be derived from IMAP server
server = "mail.example.com"
port = 587
use_starttls = true
-
IMAP Settings:
server
: Your IMAP server addressport
: IMAP port (typically 993 for SSL/TLS)tls
: Enable/disable TLS connection
-
Cache Settings:
folder
: Local directory for storing cached mail data
-
JWT Settings:
secret
: Secret key for JWT token generation⚠️ Change this to a secure random string in production
-
Encryption Settings:
key
: 32-character key for encrypting sensitive data⚠️ Change this to a secure random key in production
-
SMTP Settings:
server
: SMTP server address (optional - defaults to IMAP server)port
: SMTP port (typically 587 for STARTTLS)use_starttls
: Enable STARTTLS for SMTP connection
- Configure your
config.toml
file - Run the application:
go run main.go
- Access the webmail interface at
http://localhost:8080
(default port)
To build the project:
# Build for current platform
go build -o lilmail
# Build for specific platforms
GOOS=linux GOARCH=amd64 go build -o lilmail-linux-amd64
GOOS=windows GOARCH=amd64 go build -o lilmail-windows-amd64.exe
GOOS=darwin GOARCH=amd64 go build -o lilmail-darwin-amd64
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.