mailer/README.md

102 lines
2.1 KiB
Markdown

# 📧 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",
"templateName": "welcome",
"language": "en",
"data": {
"name": "John Doe",
"barcode_content": "0123456789",
"link": "https://portal.lauf-fuer-kaya.de/"
}
}'
```
### Send Password Reset Email
```bash
curl -X POST http://localhost:3000/api/v1/email \
-H "Content-Type: application/json" \
-d '{
"to": "user@example.com",
"templateName": "password-reset",
"language": "de",
"data": {
"token": "123465789"
}
}'
```
### 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
FRONTEND_URL="https://run.lauf-fuer-kaya.de"
AUTHKEY=""
EVENT_DATE="23.05.2025"
EVENT_NAME="Lauf für Kaya! 2025"
```
## 🛠️ 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_content`
### Password Reset
- Languages: 🇬🇧 English, 🇩🇪 German
- Variables: `token`