A Go implementation for SMTP2 protocol
Sent Messages represent messages that were created on this server (host) and later sent to a recipient (client) server.
Received messages represent all messages that were sent from different server (host) and then arrived to this (client) server.
How to run it (aka development phase):
Server 1: go run . --host 127.0.0.1 --port 8080 --debug
Server 2: go run . --host 127.0.0.1 --port 8081 --dbconfig smtp2-1.db --debug
Thanks to following people for direct contribution:
Thanks to following people for direct support (contributing to issues and resolving many problems I encountered during this protocol journey):
Thanks to following people/organizations for indirect contribution (libraries):
- Gorilla Web Toolkit for mux
- golang-jwt contributors for jwt
- Jason Moiron for sqlx
- Steve Francia for cobra
- Uber for zap
- mattn for go-sqlite3
- Google Open Source for crypto
Thanks to following organizations and companies for their tools (indirect contribution):
- GitHub for providing hosting for this project and their amazing GitHub Actions, GitHub Container Registry and GitHub Issues. It really helped me while developing it (especially GitHub Issues and Actions)
- JetBrains for providing their awesome IDEs, like GoLand, which was used while developing this, and PyCharm. Tools like Database inspector were so important for this project.