Temporary email service with Ed25519 signature-based authentication.
CoreSend provides disposable email addresses with cryptographic authentication. Each address is derived from an Ed25519 public key, ensuring only the key holder can access the inbox.
- Cryptographic Authentication - Ed25519 signature-based auth, no passwords
- Disposable Addresses - Self-destructing emails after 24 hours
- Rate Limiting - Prevents abuse with configurable limits
- REST API - Full REST API with OpenAPI/Swagger documentation
- SMTP Server - Standard SMTP for receiving emails
coresend/
├── backend/ # Go HTTP API + SMTP server
│ ├── cmd/server/ # Entry point
│ ├── internal/ # API, SMTP, storage, validation
│ └── docs/ # Swagger documentation
└── app/ # React frontend (Vite + TypeScript)
- Go 1.21+
- Node.js 18+ (or Bun)
- Redis 6.0+
redis-servercd backend
make deps
make runBackend runs on:
- HTTP API:
http://localhost:8080 - SMTP:
localhost:1025 - Swagger UI:
http://localhost:8080/docs/
cd app
bun install
bun run devFrontend runs on http://localhost:5173
- Backend README - Backend setup, configuration, and API
- API Documentation - Authentication flow and usage examples
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Client │────▶│ HTTP API │────▶│ Redis │
│ (Frontend) │ │ (Go/8080) │ │ (Storage) │
└─────────────┘ └─────────────┘ └─────────────┘
│
▼
┌─────────────┐
│ SMTP Server │
│ (Go/1025) │
└─────────────┘
CoreSend uses Ed25519 signatures instead of passwords:
- Generate Ed25519 keypair
- Derive address:
sha256(publicKey)[:20](hex) - Sign each request:
timestamp:method:path - Include headers:
X-Public-Key,X-Signature,X-Timestamp
See API Documentation for detailed examples.
| Method | Path | Description |
|---|---|---|
POST |
/api/register/{address} |
Register address |
GET |
/api/inbox/{address} |
Get all emails |
GET |
/api/inbox/{address}/{id} |
Get specific email |
DELETE |
/api/inbox/{address}/{id} |
Delete email |
DELETE |
/api/inbox/{address} |
Clear inbox |
GET |
/api/health |
Health check |
cd backend
make test # Run tests
make swagger # Generate swagger docs
make build # Build binarycd app
bun run lint # Run linter
bun run build # Build for productionAGLP-3.0 License. See LICENSE for details.