# 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.