diff --git a/CHANGELOG.md b/CHANGELOG.md index fa0b708..657c7fe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,20 @@ Alle wichtigen Änderungen an diesem Projekt werden hier dokumentiert. Das Format basiert auf [Keep a Changelog](https://keepachangelog.com/de/1.0.0/), und dieses Projekt folgt [Semantic Versioning](https://semver.org/lang/de/). +## [1.1.0] - 2026-01-16 + +### Hinzugefügt +- **Footer-Icon-Auswahl**: Mehrere Icons aus dem `/assets`-Ordner können für den E-Mail-Footer ausgewählt werden +- Neuer API-Endpunkt `GET /api/assets` zum Abrufen verfügbarer Assets +- Thumbnail-Grid in der Weboberfläche zur Icon-Auswahl +- Dynamische Footer-Generierung mit mehreren CID-eingebetteten Bildern + +### Geändert +- `POST /api/send` akzeptiert neues optionales Feld `footerAssets` (Array von Dateinamen) +- Footer wird nur noch angezeigt wenn mindestens ein Icon ausgewählt wurde + +--- + ## [1.0.0] - 2026-01-16 ### Hinzugefügt diff --git a/README.md b/README.md index 41519db..a48d249 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,9 @@ Ein Node.js-basierter Mail-Service mit Weboberfläche zum Versenden von E-Mails ## Features - **Weboberfläche** zum Versenden von E-Mails (Empfänger, CC, Betreff, Text/HTML) +- **Footer-Icon-Auswahl** - Mehrere Icons aus dem `/assets`-Ordner auswählbar (Thumbnail-Grid) - **Persistente Historie** in SQLite-Datenbank -- **Eingebetteter Bild-Footer** via CID-Attachment (wird ohne "Bilder anzeigen" dargestellt) +- **Eingebettete Bilder** via CID-Attachment (werden ohne "Bilder anzeigen" dargestellt) - **REST-API** für programmatischen Zugriff - **Brevo SMTP** mit DKIM/SPF/DMARC-Unterstützung @@ -25,8 +26,10 @@ mail-service/ │ ├── index.html # Weboberfläche │ ├── style.css # Styling │ └── script.js # Frontend-Logik -├── assets/ -│ └── homeicon.png # Footer-Bild (40x40 PNG) +├── assets/ # Footer-Icons (PNG/JPG/GIF/SVG) +│ ├── homeicon.png +│ ├── cal.png +│ └── ... # Weitere Icons automatisch verfügbar └── data/ └── emails.db # SQLite-Datenbank (automatisch erstellt) ``` @@ -90,11 +93,22 @@ Server läuft auf: http://localhost:3000 | Methode | Route | Beschreibung | |---------|-------|--------------| | GET | `/` | Weboberfläche | +| GET | `/api/assets` | Verfügbare Footer-Icons abrufen | | POST | `/api/send` | E-Mail versenden | | GET | `/api/history` | Historie abrufen (letzte 50) | | DELETE | `/api/history/:id` | Einzelnen Eintrag löschen | | DELETE | `/api/history` | Gesamte Historie löschen | +### GET /api/assets + +**Response:** +```json +{ + "success": true, + "assets": ["blue.png", "cal.png", "cog.png", "homeicon.png", "psy.png"] +} +``` + ### POST /api/send **Request Body:** @@ -104,10 +118,20 @@ Server läuft auf: http://localhost:3000 "cc": "optional@example.com", "subject": "Betreff", "body": "Nachrichteninhalt", - "isHtml": false + "isHtml": false, + "footerAssets": ["homeicon.png", "cal.png"] } ``` +| Feld | Typ | Pflicht | Beschreibung | +|------|-----|---------|--------------| +| to | string | Ja | Empfänger-Adresse | +| cc | string | Nein | CC-Adresse | +| subject | string | Ja | Betreff | +| body | string | Ja | Nachrichteninhalt | +| isHtml | boolean | Nein | true = HTML-Format | +| footerAssets | string[] | Nein | Icons für Footer (aus /api/assets) | + **Response (Erfolg):** ```json { @@ -493,29 +517,11 @@ sendMail( ### Footer in diesem Projekt anpassen -1. **Bild ändern:** `assets/homeicon.png` ersetzen (empfohlen: 40x40 PNG) +1. **Neue Icons hinzufügen:** Einfach Bilddateien in den `assets/`-Ordner legen (PNG, JPG, GIF, SVG). Sie erscheinen automatisch in der Auswahl. 2. **Name ändern:** In `.env` setzen: `MAIL_FOOTER_NAME=Neuer Name` -3. **Layout ändern:** In `src/mailer.js` die Funktion `getHtmlFooter()` bearbeiten: +3. **Layout ändern:** In `src/mailer.js` die Funktion `getHtmlFooter(assets)` bearbeiten -```javascript -function getHtmlFooter() { - return ` -

-
- - - - - -
- Home - - Absender
- ${FOOTER_NAME} -
- `; -} -``` +**Hinweis:** Der Footer wird nur angezeigt, wenn mindestens ein Icon in der Weboberfläche ausgewählt wurde. ## Dependencies