SMTP-EDC is a powerful, feature-rich SMTP testing tool written in Go, similar to SWAKS (SWiss Army Knife for SMTP). It provides both a command-line interface and a modern desktop application built with Wails for comprehensive SMTP server testing and email diagnostics.
- Multiple Authentication Methods: PLAIN, LOGIN, CRAM-MD5, OAuth2
- Comprehensive Connection Testing: StartTLS, SSL/TLS, plain connections
- Message Composition: Text and HTML emails with attachment support
- Template System: Predefined message templates for testing scenarios
- Advanced Diagnostics: Detailed connection logs and error reporting
- Rate Limiting: Built-in protection against abuse
- Security Features: Credential management and secure storage
- Command Line Interface (CLI): Traditional terminal-based interface for automation and scripting
- Desktop GUI: Modern cross-platform desktop application built with Wails v2 and React/TypeScript
- MCP Server: Model Context Protocol server for AI assistant integration
# Add the tap
brew tap asachs01/smtp-edc
# Install SMTP-EDC
brew install smtp-edcgo install github.com/asachs01/smtp-edc/cmd/smtp-edc@latestgit clone https://github.com/asachs01/smtp-edc.git
cd smtp-edc
go build -tags cli -o smtp-edc cmd/smtp-edc/main.go # CLI version# Install Wails (if not already installed)
go install github.com/wailsapp/wails/v2/cmd/wails@latest
# Build the desktop application
wails build
# Or for development
wails dev# Basic SMTP connection test
./smtp-edc -server smtp.gmail.com -port 587 -username your@email.com -password yourpassword
# Send a test email
./smtp-edc -server smtp.gmail.com -port 587 -username your@email.com -password yourpassword \\
-from your@email.com -to recipient@example.com -subject "Test Email" -body "This is a test."
# Test with STARTTLS
./smtp-edc -server smtp.gmail.com -port 587 -starttls -username your@email.com -password yourpassword- Launch the application:
./smtp-edc-ui(or usewails devfor development) - Configure your SMTP connection settings
- Compose and send test messages
- View detailed connection logs and diagnostics
# Start MCP server with STDIO transport (for local AI tools)
./smtp-edc mcp-server -transport stdio
# Start MCP server with HTTP transport (for remote access)
./smtp-edc mcp-server -transport http -port 8080See MCP Integration Documentation for detailed usage.
SMTP-EDC supports configuration via:
- Command line flags
- YAML configuration files
- Environment variables
- GUI settings (desktop application)
server: smtp.gmail.com
port: 587
username: your@email.com
password: yourpassword
auth_type: PLAIN
starttls: true
skip_verify: false
templates:
test: "This is a test email from SMTP-EDC"smtp-edc/
├── cmd/smtp-edc/ # CLI application entry point
├── main.go # Wails desktop application entry point
├── app.go # Wails backend service layer
├── frontend/ # React/TypeScript frontend for desktop app
├── internal/
│ ├── auth/ # Authentication implementations
│ ├── client/ # SMTP client logic
│ ├── config/ # Configuration management
│ ├── message/ # Message composition and templates
│ └── security/ # Security and logging features
├── docs/ # Comprehensive documentation
└── wails.json # Wails project configuration
- Go 1.21+
- Node.js 16+ (for desktop app frontend)
- Wails v2 (for desktop app development)
# Install dependencies
go mod download
cd frontend && npm install
# Run desktop app in development mode
wails dev
# Build for production
wails build
# Run tests
go test ./...The desktop application uses a carefully chosen color palette:
- Primary: #FFFFFF (White)
- Secondary: #253238 (Dark Gray-Blue)
- Accent: #FF7C1A (Orange)
Comprehensive documentation is available in the docs/ directory:
- MCP Integration Guide - Model Context Protocol server documentation
- Comprehensive README - Detailed project documentation
- Troubleshooting Guide - Common issues and solutions
- Wails UI Conversion Plan - Desktop app development plan
- Product Requirements Document - Detailed requirements specification
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
SMTP-EDC provides similar functionality to SWAKS with several enhancements:
- Modern Go implementation with better performance
- Cross-platform desktop GUI
- Enhanced authentication support including OAuth2
- Built-in security features and rate limiting
- Comprehensive logging and diagnostics
- Template system for common testing scenarios
- Enhanced OAuth2 support for major email providers
- Advanced message templates and scripting
- Bulk email testing capabilities
- REST API for automation
- Docker containerization
- Package managers distribution (Homebrew, Chocolatey, etc.)
For issues, feature requests, or questions:
- Open an issue on GitHub
- Check the Troubleshooting Guide
- Review the comprehensive documentation