smtp-edc

SMTP-EDC Logo

Release Go Report Card License: MIT

SMTP-EDC (SMTP Enhanced Diagnostics Client)

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.

Features

Core SMTP Testing

User Interfaces

  1. Command Line Interface (CLI): Traditional terminal-based interface for automation and scripting
  2. Desktop GUI: Modern cross-platform desktop application built with Wails v2 and React/TypeScript

Installation

Using Homebrew

# Add the tap
brew tap asachs01/smtp-edc

# Install SMTP-EDC
brew install smtp-edc

Using Go Install

go install github.com/asachs/smtp-edc/cmd/smtp-edc@latest

From Source

git clone https://github.com/asachs/smtp-edc.git
cd smtp-edc
go build -o smtp-edc cmd/smtp-edc/main.go  # CLI version

Building the Desktop Application

# 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

Quick Start

Command Line Usage

# 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

Desktop Application

  1. Launch the application: ./smtp-edc-ui (or use wails dev for development)
  2. Configure your SMTP connection settings
  3. Compose and send test messages
  4. View detailed connection logs and diagnostics

Configuration

SMTP-EDC supports configuration via:

Example Configuration File

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"

Project Structure

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

Development

Prerequisites

Development Workflow

# 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 ./...

Color Theme

The desktop application uses a carefully chosen color palette:

Documentation

Comprehensive documentation is available in the docs/ directory:

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Comparison with SWAKS

SMTP-EDC provides similar functionality to SWAKS with several enhancements:

Roadmap

Support

For issues, feature requests, or questions:

Homebrew Tap for SMTP-EDC

This repository contains the Homebrew formula for SMTP-EDC, a powerful, cross-platform SMTP testing tool written in Go.

Installation

# Add the tap
brew tap asachs01/smtp-edc

# Install SMTP-EDC
brew install smtp-edc

Usage

After installation, you can use SMTP-EDC from the command line:

# Basic usage
smtp-edc --server smtp.example.com --from sender@example.com --to recipient@example.com

# With authentication
smtp-edc --server smtp.example.com --port 587 --from sender@example.com --to recipient@example.com \
    --auth plain --username user --password pass

# With TLS/STARTTLS
smtp-edc --server smtp.example.com --port 587 --from sender@example.com --to recipient@example.com \
    --starttls

# With debug mode
smtp-edc --server smtp.example.com --from sender@example.com --to recipient@example.com --debug

For more detailed usage information, visit the SMTP-EDC documentation.

Updating

To update SMTP-EDC to the latest version:

brew update
brew upgrade smtp-edc

Troubleshooting

If you encounter any issues:

  1. Try updating the tap:
    brew update
    brew upgrade smtp-edc
    
  2. Check the SMTP-EDC issues page
  3. Create a new issue if needed

Development

This tap is automatically updated when new releases are published to the main SMTP-EDC repository. The update process is handled by GitHub Actions.

Manual Formula Updates

If you need to update the formula manually:

  1. Get the SHA256 of the new release tarball:
    curl -L https://github.com/asachs01/smtp-edc/archive/refs/tags/vX.Y.Z.tar.gz | shasum -a 256
    
  2. Update the formula in Formula/smtp-edc.rb with:
    • New version number
    • New SHA256
    • New URL

License

This tap is distributed under the MIT License.