A terminal-based email client built with Go and Bubble Tea, supporting multiple email providers.
- Multiple Email Providers: Support for Mailgun, SMTP, and SendGrid
- Terminal UI: Clean, interactive interface powered by Bubble Tea
- Email Composition: Compose and send emails with attachments
- History Tracking: Keep track of sent emails
- Configuration Management: Easy YAML-based configuration
- Provider Switching: Switch between multiple configured email providers
go build -o mailgloss
./mailglossMailGloss uses a YAML configuration file located at ~/.config/mailgloss/config.yaml.
- Copy the example configuration:
mkdir -p ~/.config/mailgloss
cp config.example.yaml ~/.config/mailgloss/config.yaml- Edit the configuration file with your email provider details:
nano ~/.config/mailgloss/config.yamldefault_provider: "my-mailgun"Mailgun:
providers:
my-mailgun:
name: "my-mailgun"
type: mailgun
from_address: "your@email.com"
from_name: "Your Name"
mailgun:
api_key: "your-mailgun-api-key"
domain: "your-domain.com"
url: "https://api.mailgun.net"SMTP:
providers:
my-smtp:
name: "my-smtp"
type: smtp
from_address: "your@email.com"
from_name: "Your Name"
smtp:
host: "smtp.gmail.com"
port: 587
username: "your@email.com"
password: "your-app-password"SendGrid:
providers:
my-sendgrid:
name: "my-sendgrid"
type: sendgrid
from_address: "your@email.com"
from_name: "Your Name"
sendgrid:
api_key: "your-sendgrid-api-key"limits:
max_attachment_size_mb: 25 # Maximum attachment size in MB
max_history_entries: 100 # Maximum number of emails to keep in history
max_body_length: 10000 # Maximum email body length in characters
max_emails_per_field: 500 # Maximum character limit for To/CC/BCC fieldsRun MailGloss:
./mailglossThe application has three main tabs:
- Compose: Create and send new emails
- History: View previously sent emails
- Settings: Manage providers and application settings
mailgloss/
├── config/ # Configuration loading and management
├── logger/ # Logging utilities
├── mailer/ # Email sending logic
├── models/ # Application models (compose, history, settings)
├── storage/ # History storage
├── ui/ # UI styles and components
└── main.go # Application entry point
- Bubble Tea - TUI framework
- Bubbles - TUI components
- Lipgloss - Style definitions
- go-mail - Email sending library
- Go 1.25.7 or higher
See LICENSE file for details.
