A powerful, cross-platform SMTP testing tool written in Go, designed to be a modern alternative to Swaks. SMTP-EDC provides comprehensive SMTP testing capabilities with a focus on ease of use and detailed debugging information.
go install github.com/asachs/smtp-edc/cmd/smtp-edc@latest
git clone https://github.com/asachs/smtp-edc.git
cd smtp-edc
go build -o smtp-edc cmd/smtp-edc/main.go
smtp-edc --server smtp.example.com \
--from sender@example.com \
--to recipient@example.com \
--subject "Test Email" \
--body "This is a test email"
smtp-edc --server smtp.example.com \
--port 587 \
--from sender@example.com \
--to recipient@example.com \
--auth plain \
--username user \
--password pass
smtp-edc --server smtp.example.com \
--port 587 \
--from sender@example.com \
--to recipient@example.com \
--starttls \
--skip-verify # Skip certificate verification (not recommended for production)
smtp-edc --server smtp.example.com \
--from sender@example.com \
--to recipient@example.com \
--attach /path/to/file1.txt \
--attach /path/to/file2.pdf
smtp-edc --server smtp.example.com \
--from sender@example.com \
--to recipient@example.com \
--debug
SMTP-EDC can be configured using command-line arguments or a configuration file (smtp-edc.yaml
). The configuration file supports all command-line options in YAML format.
Example configuration file:
server: smtp.example.com
port: 587
from: sender@example.com
to:
- recipient1@example.com
- recipient2@example.com
auth_type: plain
username: user
password: pass
starttls: true
skip_verify: false
templates:
welcome: |
Dear ,
Welcome to our service!
--skip-verify
for testing--verbose
for detailed transaction information--debug
for protocol-level debuggingsmtp-edc/
├── cmd/
│ └── smtp-edc/ # Main application entry point
│ └── main.go
├── internal/
│ ├── client/ # SMTP client implementation
│ ├── message/ # Email message handling
│ ├── auth/ # Authentication methods
│ └── transport/ # Network transport layer
├── pkg/
│ ├── smtp/ # SMTP protocol implementation
│ └── utils/ # Utility functions
├── docs/ # Documentation
├── scripts/ # Build and deployment scripts
└── plans/ # Project planning documents
We welcome contributions! Please follow these steps:
git clone https://github.com/asachs/smtp-edc.git
cd smtp-edc
go mod download
go test ./...
This project is licensed under the MIT License - see the LICENSE file for details.
For support, please:
This repository contains the Homebrew formula for SMTP-EDC, a powerful, cross-platform SMTP testing tool written in Go.
# Add the tap
brew tap asachs01/smtp-edc
# Install SMTP-EDC
brew install smtp-edc
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.
To update SMTP-EDC to the latest version:
brew update
brew upgrade smtp-edc
If you encounter any issues:
brew update
brew upgrade smtp-edc
This tap is automatically updated when new releases are published to the main SMTP-EDC repository. The update process is handled by GitHub Actions.
If you need to update the formula manually:
curl -L https://github.com/asachs01/smtp-edc/archive/refs/tags/vX.Y.Z.tar.gz | shasum -a 256
Formula/smtp-edc.rb
with:
This tap is distributed under the MIT License.