MailPrint

MailPrint C#

Automatischer PDF-Druck per E-Mail und REST API

  • ★ 0
  • ⑂ 0
  • ● 0 offene Issues
  • Aktualisiert: 1. Mai 2026

Beschreibung

MailPrint

Windows-Dienst zum automatischen Drucken von PDF-Anhängen aus E-Mails, per REST API und per Ordner-Überwachung.

Kostenlos und quelloffen. Version 1.0.0


Features

  • 📧 IMAP / POP3 – Postfächer werden automatisch abgerufen, PDF-Anhänge sofort gedruckt
  • 📂 Ordner-Überwachung – PDFs in überwachten Ordnern werden automatisch gedruckt
  • 🖨️ Mehrere Drucker-Profile – je Profil eigener Drucker, Papierfach, Duplex und Kopienanzahl
  • 📬 Mehrere Postfächer – jedes Postfach zeigt auf ein Drucker-Profil
  • 🌐 REST API – PDF per HTTP-Upload oder URL drucken (z.B. aus einem Webshop)
  • 🔒 API-Key Absicherung – optionaler Schutz für den HTTP-Endpunkt
  • 🗂️ Papierfach-Steuerung – SumatraPDF-basiert, stiller Druck ohne Fenster
  • ↔️ Duplex-Druck – einseitig, lange Seite oder kurze Seite
  • ✉️ E-Mail-Whitelist / Blacklist – global und pro Drucker-Profil
  • ⚙️ Config-Tool – WinForms GUI zum Konfigurieren ohne JSON-Bearbeitung
  • 🔄 Windows Service – läuft ohne Anmeldung im Hintergrund

Voraussetzungen


Installation

1. Release entpacken

Inhalt des publish-Ordners in ein Zielverzeichnis kopieren, z.B.:

C:\Services\MailPrint\

2. Konfigurieren

MailPrintConfig.exe starten und konfigurieren:

  • Drucker-Profile – Drucker + Papierfach + optionale Absender-Filter
  • Postfächer – IMAP/POP3 Zugangsdaten + zugeordnetes Drucker-Profil
  • Web API – Port, API-Key, FritzBox-Portmapping
  • Filter – globale Whitelist/Blacklist
  • Allgemein – Intervall, SumatraPDF-Pfad, Temp-Verzeichnis

Auf Speichern klicken.

3. Als Windows Service installieren

# Als Administrator ausführen:
.\install-service.ps1

4. Deinstallieren

# Als Administrator ausführen:
.\uninstall-service.ps1

Web API

Methode Endpunkt Beschreibung
POST /api/print/upload PDF hochladen (multipart/form-data)
POST /api/print/url PDF-URL übergeben
GET /api/print/printers Drucker + Papierfächer auflesen
GET /api/print/health Healthcheck
GET /swagger Swagger UI

Authentifizierung

X-Api-Key: <dein-api-key>

Beispiel Upload (curl)

curl -X POST http://localhost:5100/api/print/upload \
  -H "X-Api-Key: DEIN_KEY" \
  -F "file=@rechnung.pdf" \
  -F "printer=HP LaserJet" \
  -F "paperSource=Fach 2" \
  -F "copies=1"

Beispiel URL (PowerShell)

Invoke-RestMethod -Uri "http://localhost:5100/api/print/url" `
  -Method Post `
  -Headers @{"X-Api-Key" = "DEIN_KEY"; "Content-Type" = "application/json"} `
  -Body '{"url":"https://example.com/rechnung.pdf","copies":1}'

Papierfach-Steuerung

SumatraPDF wird automatisch gefunden wenn:

  • Installiert unter C:\Program Files\SumatraPDF\
  • Installiert unter %LOCALAPPDATA%\SumatraPDF\
  • SumatraPDF.exe liegt neben MailPrint.exe

Ohne SumatraPDF: Fallback auf Windows Shell-Print (kein Papierfach-Support).


Logs

  • Konsole (wenn als EXE gestartet)
  • logs\mailprint-YYYYMMDD.log (neben der EXE)
  • Windows EventLog unter „MailPrint” (wenn als Service)

Lizenz

MIT

Releases

What do you feel about this post?

0%
like

Like

0%
love

Love

0%
happy

Happy

0%
haha

Haha

0%
sad

Sad

0%
angry

Angry