Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mail-print

Überwacht ein oder mehrere Gmail-Labels per IMAP und druckt PDF/Bild-Anhänge aus neuen Mails automatisch über CUPS aus. Gedacht für den Betrieb auf einem Raspberry Pi (z. B. per Cron alle 5 Minuten), nicht als Dauerprozess.

Funktionsweise

  • Verbindet sich per IMAP mit Gmail
  • Prüft die in MAILBOXES konfigurierten Labels auf ungelesene Mails
  • Extrahiert Anhänge mit erlaubter Dateiendung (.pdf, .jpg, .jpeg, .png)
  • Druckt sie über lp auf dem konfigurierten CUPS-Drucker aus
  • Markiert verarbeitete Mails als gelesen

Setup

1. Gmail vorbereiten

  1. IMAP aktivieren: Gmail → Einstellungen → „Weiterleitung und POP/IMAP" → IMAP aktivieren
  2. 2-Faktor-Authentifizierung aktivieren (Voraussetzung für App-Passwörter)
  3. App-Passwort erstellen: https://myaccount.google.com/apppasswords
  4. Gewünschte Labels anlegen bzw. vorhandene Namen ermitteln:
    export MAIL_PRINT_PASS="dein-app-passwort"
    python3 mail_print.py --list-labels

2. Konfiguration

In mail_print.py anpassen:

IMAP_USER = "deinaccount@gmail.com"
MAILBOXES = ["Telekom-Rechnungen", "Reservierungen"]
CUPS_PRINTER = "Brother_HL-2030_series"  # Name via `lpstat -p` ermitteln

.env.example nach .env kopieren und mit echtem App-Passwort befüllen:

cp .env.example .env
chmod 600 .env

3. Manuell testen

set -a; source .env; set +a
python3 mail_print.py

4. Automatisierung per Cron

Siehe crontab.example. Standard: alle 5 Minuten.

crontab -e
# Inhalt aus crontab.example einfügen, Pfade anpassen

Log prüfen:

tail -f mail_print.log

Sicherheit

  • .env ist in .gitignore und wird nie eingecheckt
  • Nur PDF/JPG/PNG-Anhänge werden gedruckt
  • App-Passwort statt echtem Gmail-Passwort verwenden

About

Watches Gmail labels via IMAP and auto-prints PDF/image attachments via CUPS. Runs on a Raspberry Pi via cron.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages