Check existing issues first, then open one with:
- Go version, OS
- Steps to reproduce
- Expected vs actual behavior
- Relevant logs (sanitize sensitive data)
git clone https://github.com/YOUR_USERNAME/email-server.git
cd email-server
git remote add upstream https://github.com/fenilsonani/email-server.git
go mod download
go test ./...-
Branch from
main:git checkout -b feat/your-feature
-
Make changes, add tests, update docs as needed.
-
Test:
go test ./... go test -race ./... go vet ./...
-
Commit using Conventional Commits:
feat(smtp): add STARTTLS support fix(imap): resolve connection timeoutTypes:
feat,fix,docs,refactor,perf,test,chore -
Push and open a PR. One feature/fix per PR.
cmd/mailserver/ Entry point
internal/
admin/ Web admin panel
audit/ Audit logging
auth/ Authentication
config/ Configuration
dav/ CalDAV/CardDAV
greylist/ Greylisting
imap/ IMAP server
metrics/ Prometheus metrics
queue/ Redis message queue
resilience/ Circuit breakers
security/ TLS, DKIM
smtp/ SMTP server & delivery
storage/ Maildir & metadata
configs/ Example configs
deploy/ systemd, Docker, nginx
- Questions: Discussions
- Bugs: Issues
- Security: SECURITY.md
By contributing, you agree that your contributions will be licensed under the MIT License.