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:
14
CHANGELOG.md
14
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
|
||||
|
||||
56
README.md
56
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 `
|
||||
<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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user