97 lines
3.5 KiB
Markdown
97 lines
3.5 KiB
Markdown
|
# IMAP-ntfy Notification Service
|
|||
|
|
|||
|
Eine Go-Anwendung, die jede Minute ein IMAP-Postfach abfragt und bei neuen E-Mails eine Benachrichtigung per ntfy sendet. Unterstützt variable ntfy-Server, Authentifizierung und einen Action-Button für Antworten.
|
|||
|
|
|||
|
## Features
|
|||
|
|
|||
|
- **Polling:** Überprüft alle 60 Sekunden das IMAP-Postfach auf neue E-Mails.
|
|||
|
- **Benachrichtigung:** Sendet bei neuen E-Mails einen Push an einen ntfy-Server.
|
|||
|
- **Authentifizierung:** Unterstützt Basic Auth für ntfy.
|
|||
|
- **Action-Button:** Fügt einen "Antworten"-Button mit Reply-To-Adresse hinzu.
|
|||
|
- **Konfiguration:** Alle Einstellungen erfolgen über Umgebungsvariablen.
|
|||
|
- **Docker:** Einfache Deployment-Option mit Docker und Docker Compose.
|
|||
|
- **Text-Inhalt:** Extrahiert den reinen Text-Inhalt der E-Mail und kürzt ihn auf 200 Zeichen.
|
|||
|
|
|||
|
## Voraussetzungen
|
|||
|
|
|||
|
- **Go** (mind. 1.21, nur für lokale Entwicklung)
|
|||
|
- **Docker** und **Docker Compose**
|
|||
|
- **IMAP-fähiges E-Mail-Postfach**
|
|||
|
- **ntfy-Server** (z.B. `https://ntfy.sh` oder selbst gehostet)
|
|||
|
|
|||
|
## Konfiguration
|
|||
|
|
|||
|
Die Anwendung wird ausschließlich über Umgebungsvariablen konfiguriert:
|
|||
|
|
|||
|
| Variable | Beschreibung | Beispielwert |
|
|||
|
|------------------|--------------------------------------|-----------------------------|
|
|||
|
| `IMAP_SERVER` | IMAP-Server-Hostname | `imap.gmail.com` |
|
|||
|
| `IMAP_PORT` | IMAP-Port | `993` |
|
|||
|
| `EMAIL_USER` | E-Mail-Adresse | `your@email.com` |
|
|||
|
| `EMAIL_PASSWORD` | E-Mail-Passwort oder App-Passwort | `your-secret-password` |
|
|||
|
| `NTFY_SERVER` | ntfy-Server-URL | `https://ntfy.sh` |
|
|||
|
| `NTFY_TOPIC` | ntfy-Topic | `my-github-notifications` |
|
|||
|
| `NTFY_USER` | ntfy-Benutzername (optional) | `ntfy-username` |
|
|||
|
| `NTFY_PASSWORD` | ntfy-Passwort (optional) | `ntfy-password` |
|
|||
|
|
|||
|
## Installation und Start
|
|||
|
|
|||
|
### 1. Repository klonen
|
|||
|
|
|||
|
```bash
|
|||
|
git clone https://github.com/your-repository/imap-ntfy.git
|
|||
|
cd imap-ntfy
|
|||
|
```
|
|||
|
|
|||
|
### 2. Umgebungsvariablen anpassen
|
|||
|
|
|||
|
Passe die Werte in der Datei `docker-compose.yml` an deine Einstellungen an.
|
|||
|
|
|||
|
### 3. Docker Compose starten
|
|||
|
|
|||
|
```bash
|
|||
|
docker-compose up --build -d
|
|||
|
```
|
|||
|
|
|||
|
### 4. Logs überwachen
|
|||
|
|
|||
|
```bash
|
|||
|
docker-compose logs -f
|
|||
|
```
|
|||
|
|
|||
|
## Sicherheitshinweise
|
|||
|
|
|||
|
- **Verwende App-Passwörter** für E-Mail-Konten.
|
|||
|
- **Sensible Daten** wie Passwörter sollten nicht in Klartext in Versionskontrollsystemen gespeichert werden.
|
|||
|
- **Für ntfy:** Setze `NTFY_USER` und `NTFY_PASSWORD` für geschützte Topics.
|
|||
|
|
|||
|
## Beispiel für eine ntfy-Benachrichtigung
|
|||
|
|
|||
|
**Titel:**
|
|||
|
`Testnachricht`
|
|||
|
|
|||
|
**Inhalt:**
|
|||
|
```
|
|||
|
Betreff: Testnachricht
|
|||
|
Von: absender@example.com
|
|||
|
Antwort an: absender@example.com
|
|||
|
|
|||
|
Hallo, dies ist eine Testnachricht. Hier steht der Inhalt der E-Mail, auf maximal 200 Zeichen gekürzt...
|
|||
|
```
|
|||
|
|
|||
|
**Action-Button:**
|
|||
|
"Antworten" – öffnet das Standard-E-Mail-Programm mit vorausgefülltem Empfänger.
|
|||
|
|
|||
|
## Technische Details
|
|||
|
|
|||
|
- **Polling-Intervall:** 60 Sekunden
|
|||
|
- **Markierung:** Nach erfolgreicher Benachrichtigung wird die E-Mail als gelesen markiert (`\Seen`)
|
|||
|
- **Action-Button:** Fügt einen "Antworten"-Button mit Reply-To-Adresse hinzu
|
|||
|
- **Text-Inhalt:** Es wird nur der reine Text-Inhalt der E-Mail extrahiert und verwendet
|
|||
|
- **Flexibilität:** Unterstützt jeden ntfy-Server, auch selbst gehostet
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
**Hinweis:**
|
|||
|
Die Anwendung ist für den produktiven Einsatz geeignet und kann leicht erweitert werden.
|