Update docs for v1.1.0 footer asset selector

- Add changelog entry for new feature
- Update README with asset selection documentation
- Document new /api/assets endpoint
- Update /api/send with footerAssets parameter

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-16 22:37:24 +00:00
parent 96bc2286a5
commit f7258d5236
2 changed files with 45 additions and 25 deletions

View File

@@ -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

View File

@@ -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 `
<br/><br/>
<hr style="border: none; border-top: 1px solid #ddd; margin: 20px 0;"/>
<table cellpadding="0" cellspacing="0" style="font-family: Arial, sans-serif;">
<tr>
<td style="vertical-align: middle; padding-right: 10px;">
<img src="cid:homeicon" alt="Home" width="40" height="40" />
</td>
<td style="vertical-align: middle;">
<strong>Absender</strong><br/>
${FOOTER_NAME}
</td>
</tr>
</table>
`;
}
```
**Hinweis:** Der Footer wird nur angezeigt, wenn mindestens ein Icon in der Weboberfläche ausgewählt wurde.
## Dependencies