2025-12-13 19:53:09 +01:00
2025-12-13 19:24:02 +01:00
2025-12-13 19:53:09 +01:00

📬 Mail-Alarm

IMAP-Überwachung mit Pushover Emergency Alerts für Rufbereitschaft.

Beschreibung

Mail-Alarm überwacht ein E-Mail-Postfach in Echtzeit via IMAP IDLE und löst bei eingehenden Mails einen Pushover Emergency Alert aus. Der Alarm klingelt wiederholt auf allen verbundenen Geräten (Smartphone, Smartwatch, Desktop), bis er bestätigt wird ideal für Rufbereitschaft.

Features

  • 🚀 IMAP IDLE Reagiert sofort auf neue E-Mails (kein Polling)
  • 📱 Pushover Emergency Alerts Klingelt wiederholt bis zur Bestätigung
  • 📲 Multi-Plattform iPhone, Apple Watch, Android, Desktop (Windows, Mac, Linux)
  • 🔄 Auto-Reconnect Verbindet sich automatisch bei Verbindungsabbruch neu
  • 🛠️ Einfache Installation Interaktives Setup mit systemd-Integration
  • 📋 Details im Alarm Zeigt Absender und Betreff der E-Mail

Voraussetzungen

  • Debian/Ubuntu Server (getestet mit Debian 13)
  • Python 3
  • Pushover Account + App (pushover.net) einmalig ~5€ pro Plattform
  • IMAP-fähiges E-Mail-Postfach

Installation

# Repository klonen
git clone https://git.jtl-hosting.de/thomasciesla/mail-alarm.git
cd mail-alarm

# Installation starten (als root)
sudo python3 mail-alarm.py

Im Menü 1) Installieren wählen und den Anweisungen folgen.

Das Script:

  1. Installiert Abhängigkeiten (python3-imapclient, python3-requests)
  2. Fragt IMAP- und Pushover-Credentials ab
  3. Erstellt Konfiguration in /etc/mail-alarm/config.ini
  4. Richtet systemd-Service ein und startet den Daemon

Verwendung

Service-Verwaltung

# Status anzeigen
systemctl status mail-alarm

# Service stoppen
systemctl stop mail-alarm

# Service starten
systemctl start mail-alarm

# Service neustarten
systemctl restart mail-alarm

# Logs anzeigen (live)
journalctl -u mail-alarm -f

# Oder Log-Datei direkt
tail -f /var/log/mail-alarm.log

Setup-Menü erneut aufrufen

sudo python3 /usr/local/bin/mail-alarm.py

Deinstallation

sudo python3 /usr/local/bin/mail-alarm.py

Im Menü 2) Deinstallieren wählen. Optional können Konfiguration und Logs gelöscht werden.

Konfiguration

Die Konfigurationsdatei liegt unter /etc/mail-alarm/config.ini:

[IMAP]
server = imap.example.com
port = 993
username = alarm@example.com
password = geheim
folder = INBOX

[PUSHOVER]
token = dein-app-token
user = dein-user-key
sound = dein-custom-sound

[ALARM]
retry = 30
expire = 3600
title = Rufbereitschaft
message = ALARM: Neue E-Mail im Rufbereitschafts-Postfach!
Parameter Beschreibung
retry Intervall in Sekunden, in dem der Alarm wiederholt wird (min. 30)
expire Maximale Dauer in Sekunden, wie lange der Alarm wiederholt wird
sound Optionaler Custom-Sound (auf pushover.net hochladen)

Pushover Setup

  1. Account erstellen auf pushover.net
  2. App erstellen unter pushover.net/apps → "Create an Application"
  3. App Token und User Key notieren
  4. Optional: Eigenen Alarm-Sound hochladen (max. 30 Sek. MP3)

Tipp: Langer Alarm-Sound

Für einen durchgehenden Alarm einen ~30 Sekunden langen Sound erstellen:

ffmpeg -stream_loop -1 -i alarm.mp3 -t 30 -c:a libmp3lame alarm_30s.mp3

Dann auf pushover.net/sounds hochladen.

Unterstützte Plattformen

Pushover ist verfügbar für:

Plattform App
iOS App Store
Android Google Play
Desktop pushover.net/clients (Windows, Mac, Linux)
Apple Watch Automatisch mit iOS App
Android Wear Automatisch mit Android App

Der Emergency Alert (Priority 2) funktioniert auf allen Plattformen und klingelt wiederholt bis zur Bestätigung.

Hinweis für iPhone + Apple Watch

Standardmäßig leitet iOS Benachrichtigungen nur an die Apple Watch weiter, wenn diese getragen wird. Um beide Geräte gleichzeitig zu alarmieren:

Apple Watch → Einstellungen → Code → Handgelenkerkennung deaktivieren

⚠️ Dadurch werden einige Watch-Features deaktiviert (Herzfrequenz, Aktivitätsmessung).

Manueller Test

Pushover-Alert manuell auslösen:

curl -s \
  --form-string "token=DEIN_APP_TOKEN" \
  --form-string "user=DEIN_USER_KEY" \
  --form-string "message=Test-Alarm" \
  --form-string "title=Rufbereitschaft" \
  --form-string "priority=2" \
  --form-string "retry=30" \
  --form-string "expire=300" \
  https://api.pushover.net/1/messages.json

Dateien

Pfad Beschreibung
/usr/local/bin/mail-alarm.py Hauptscript
/etc/mail-alarm/config.ini Konfiguration (nur root lesbar)
/var/log/mail-alarm.log Log-Datei
/etc/systemd/system/mail-alarm.service systemd Service

Lizenz

MIT

Autor

Thomas Ciesla

Description
Eine zuverlässigere und besser funktionierende Lösung um sich bei Alarm-Maileingang in der Rufbereitschaft benachrichtigen zu lassen.
Readme 32 KiB
Languages
Python 100%