diff --git a/.env.example b/.env.example index ea7670d..ababd0f 100644 --- a/.env.example +++ b/.env.example @@ -1,7 +1,7 @@ -SMTP_HOST=smtp.mailtrap.io -SMTP_PORT=2525 -SMTP_USER=your_smtp_user -SMTP_PASS=your_smtp_password -EMAIL_FROM=noreply@example.com -EMAIL_REPLYTO=noreply@example.com +SMTP_HOST=localhost +SMTP_PORT=587 +SMTP_USER="project.1" +SMTP_PASS="secret.1" +EMAIL_FROM="noreply@lauf-fuer-kaya.de" +EMAIL_REPLYTO="info@lauf-fuer-kaya.de" REDIS_URL=redis://localhost:6379 \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..b70cdae --- /dev/null +++ b/README.md @@ -0,0 +1,102 @@ +# πŸ“§ Email Microservice + +A modern email microservice built with Hono and TypeScript, supporting multiple languages and HTML/Text email templates. + +## ✨ Features + +- 🌐 Multi-language support (English & German) +- πŸ“ HTML and Text email templates +- πŸ“š OpenAPI/Swagger documentation +- ⚑ High-performance with Bun runtime +- πŸ”„ Queue-based email processing +- 🎨 Handlebars templating + +## πŸš€ Quick Start + +```bash +# Install dependencies +bun install + +# Start development server +bun dev +``` + +## πŸ“– API Documentation + +Swagger UI is available at: `/swagger` + +## πŸ” Example API Calls + +### Send Welcome Email + +```bash +curl -X POST http://localhost:3000/api/v1/email \ + -H "Content-Type: application/json" \ + -d '{ + "to": "user@example.com", + "subject": "Welcome to Lauf fΓΌr Kaya! 2025", + "templateName": "welcome", + "language": "en", + "data": { + "name": "John Doe", + "barcode_url": "https://barcodeapi.org/api/8/12345670?", + "link": "https://run.lauf-fuer-kaya.de/selfservice/" + } + }' +``` + +### Send Password Reset Email + +```bash +curl -X POST http://localhost:3000/api/v1/email \ + -H "Content-Type: application/json" \ + -d '{ + "to": "user@example.com", + "subject": "Password Reset Request", + "templateName": "password-reset", + "language": "de", + "data": { + "name": "John Doe", + "resetLink": "https://example.com/reset/123", + "expiresIn": "24 hours" + } + }' +``` + +### Check Queue Status + +```bash +curl http://localhost:3000/api/v1/email/status +``` + +## πŸ“ Environment Variables + +```env +SMTP_HOST=localhost +SMTP_PORT=587 +SMTP_USER="project.1" +SMTP_PASS="secret.1" +EMAIL_FROM="noreply@lauf-fuer-kaya.de" +EMAIL_REPLYTO="info@lauf-fuer-kaya.de" +REDIS_URL=redis://localhost:6379 +``` + +## πŸ› οΈ Development + +The project uses: +- πŸƒβ€β™‚οΈ Bun for runtime and package management +- 🌐 Hono for the web framework +- πŸ“š Zod for validation +- πŸ“§ Nodemailer for email sending +- πŸ“‘ Handlebars for templating +- πŸ“Š BullMQ for queue management + +## πŸ“¦ Available Templates + +### Welcome Email +- Languages: πŸ‡¬πŸ‡§ English, πŸ‡©πŸ‡ͺ German +- Variables: `name`, `link`, `barcode_url` + +### Password Reset +- Languages: πŸ‡¬πŸ‡§ English, πŸ‡©πŸ‡ͺ German +- Variables: `name`, `resetLink`, `expiresIn` \ No newline at end of file