Backend RESTful API for contact form submissions: multi-SMTP failover, templates, attachments, API versioning, rate limiting. Runs locally or on AWS Lambda.
- API reference (endpoints, payloads, responses)
- API versioning
- Rate limiting & anti-abuse
- Email templates
- Error handling
- Security
cd API
dotnet restore
dotnet run- Swagger UI:
http://localhost:5108/ - Health check:
GET http://localhost:5108/test
Minimum required env vars:
SMTP_CONFIGURATIONSSMTP_{INDEX}_PASSWORDSMTP_RECEPTION_EMAILSMTP_CATCHALL_EMAIL
Optional (prod CORS allow-list):
CORS_{INDEX}_ORIGIN
Primary endpoints (v1):
POST /api/v1/emails?smtpId={smtpId}POST /api/v1/emails?smtpId={smtpId}&test=trueGET /api/v1/emails/{emailId}GET /api/v1/smtp-configurationsGET /api/v1/versiontest
Minimal local call example:
curl -X POST "http://localhost:5108/api/v1/emails?smtpId=1" \
-H "Content-Type: application/json" \
-d '{"Email":"sender@example.com","Username":"John Doe","Message":"Hello"}'Details: Docs/api.md and Docs/versioning.md.
- AWS Lambda + GitHub Actions: Docs/deployment/aws-lambda.md
MIT - see LICENSE.