📬 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:
- Installiert Abhängigkeiten (
python3-imapclient,python3-requests) - Fragt IMAP- und Pushover-Credentials ab
- Erstellt Konfiguration in
/etc/mail-alarm/config.ini - 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
- Account erstellen auf pushover.net
- App erstellen unter pushover.net/apps → "Create an Application"
- App Token und User Key notieren
- 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