Schritt 1

Schritt 1

Ich möchte meine eingehenden E-Mails in Thunderbird so filtern, dass der Anhang (Rechnung als pdf-Datei) automatisch ohne zusätzliche Bestätigung oder Popups ausgedruckt wird.

Der E-Mail-Text sollte nicht ausgedruckt werden, nur die angehängte PDF-Datei.

Gibt es eine Möglichkeit, die angehängten Dateien automatisch auszudrucken?

Ich habe versucht,FilterQuilla, allerdings kann ich hiermit nur die E-Mail selbst ausdrucken, nicht den Anhang.

Da ist einVerwandte Fragehier als Superuser fragt man jedoch nach dem Massen-/Batchdruck aller Anhänge manuell ausgewählter Nachrichten (und hat keine Antworten). Ich möchte gezielt die Anhänge aller eingehenden E-Mails von einer Absender-E-Mail-Adresse drucken.

Eine Thunderbird-basierte Lösung wäre zwar schön, aber das ist keine Voraussetzung. Es wäre völlig in Ordnung, einige Filter in Thunderbird zu verwenden und E-Mails an eine andere E-Mail-Adresse weiterzuleiten, auf die dann ein anderes Produkt zugreift.

Übrigens wäre mir eine kostenlose/Open-Source-Lösung lieber.

Antwort1

Hier ist meine Lösung des Problems, indem ich einige Aspekte der anderen Antworten kombiniere und deren Einschränkungen überwinde.

Vorteile dieser Lösung:

  • Open Source Lösung, somit auch für kommerzielle Hintergründe verfügbar
  • Wirklichunsichtbares, geräuschloses DruckenEs werden keine Fenster geöffnet

Der Ansatz kombiniert mehrere Schritte:

  1. Filterung von E-Mails und Extraktion der Anhänge mitFiltaquillain Thunderbird
  2. APython-Skriptzum Drucken der Dateien überFoxit Reader. Andere Tools wie AdobeReader oder Ghostscript sind nicht in der Lage, im Hintergrund zu drucken - bei AdobeReader ist für längere Zeit ein Fenster sichtbar und selbst bei Ghostscript öffnet sich ein Fenster.
  3. Ageplante Aufgabeum das Python-Skript regelmäßig auszuführen.

Schritt 1

Alle E-Mails werden in Thunderbird gefiltert mitFiltaquilla(verfügbar für Thunderbird 52.0-60.* ab 2019). Die Filterung nach E-Mail-Absender und Betreff bietet vorerst genügend „Sicherheit“. E-Mails werden in einen IMAP-Unterordner verschoben (als Archiv zur späteren Überprüfung, falls etwas schiefgelaufen ist). Filtaquilla extrahiert alle Anhänge in einen angegebenen Ordner ( C:\invoices). Die Extraktion von Anhängen ist in Filtaquilla standardmäßig nicht aktiviert – überprüfen Sie unbedingt die Einstellungen von Filtaquilla.

Schritt 2

Platzieren Sie folgendedrucken.pywIn C:\invoices:

import os
import subprocess
import sys
import glob
import time

foxit = "C:\Program Files (x86)\Foxit Software\Foxit Reader\FoxitReader.exe"
script_dir = os.path.dirname(os.path.realpath(__file__))

# get all pdf files
pdf_files = glob.glob(script_dir + "/*.pdf")

# print each pdf and delete it
for pdf_file in pdf_files:
    command = []
    command.append(foxit)
    command.append("/p")
    command.append("/h")
    command.append(pdf_file)
    proc = subprocess.Popen(command, stdout=subprocess.PIPE)
    time.sleep(10) 
    os.remove(pdf_file)

Schritt 3

Die Datei print.pyw kann grundsätzlich mit Filtaquilla ausgeführt werden. Allerdings kann es dabei zu Mehrfachdrucken extrahierter PDF-Dateien kommen, wenn der Filter mehr als eine E-Mail findet.

Um dies zu umgehen, ist eine geplante Aufgabe (Aktion: Programm ausführen) hilfreich, die etwa alle 10 Minuten ausgeführt wird.

  • Programm/Skript:"C:\Program Files (x86)\Python36-32\pythonw.exe"
  • Argumente:"C:\invoices\print.pyw"
  • einlaufen:C:\invoices\

Bitte beachten Sie die fehlenden Anführungszeichen in dereinlaufen Feld, sonst wird das Skript nicht ausgeführt. Es ist auch wichtig, dass das Skript und die extrahierten Dateienliegt nicht auf einem Netzlaufwerk!

Antwort2

  1. Erstellen Sie den Ordner „AttachmentsToPrint“, überprüfen Sie ihn in FilterQuilla Save Attachments Tound geben Sie ihn an.
  2. Erstellen Sie eine Batch-/Skriptdatei, die 60 Sekunden wartet (um FilterQuilla Zeit zu geben, den Anhang zu extrahieren, bevor wir etwas damit tun), dann drucken Sie die Datei und löschen Sie sie
  3. Überprüfen Sie in FilterQuilla Run Programdie Batch-/Skriptdatei und geben Sie sie an.
  4. Drück die Daumen

Es gibt sicherlich kommerzielle Software dafür, daher ist die Anforderung SEHR einfach und problemlos möglich, wenn sie gekauft wird. Open-Source ist wahrscheinlich möglich, aber noch komplizierter als das oben genannte. Hier sind einige Links, die Ihnen möglicherweise den Einstieg erleichtern: https://blog.thomashampel.com/blog/tomcat2000.nsf/dx/print-email-attachments-with-a-raspberrypi.htm https://ubuntuforums.org/showthread.php?t=935489

Das Problem, das mich beunruhigt, ist, wie man ohne einen Mail-Client Spam/Junk filtert, damit man das nicht ausdruckt. Auch ein bisschen beunruhigend ist, dass extrahierte Anhänge möglicherweise eine Infektion verursachen könnten, aber vielleicht bin ich einfach nur paranoid.

Antwort3

Sie können eine zweistufige Lösung verwenden, wenn der E-Mail-Server IMAP verwendet:

  1. Anhänge aus neuen E-Mails in einen Ordner herunterladen
  2. Überwachen Sie den Ordner auf Neuzugänge und drucken Sie diese aus

Für den ersten Schritt könnten Sie ein kostenloses Produkt verwenden wie Kostenlose Edition des Mail Attachment Downloader, beschrieben als:

Mail Attachment Downloader lädt alle Ihre E-Mail-Anhänge auf einmal sicher herunter und verarbeitet sie entsprechend Ihrer Sucheinstellungen. Alle Ihre E-Mails bleiben auf Ihrem Server – es kommt nicht zu Störungen anderer E-Mail-Programme, die Sie heute zum Herunterladen Ihrer E-Mails verwenden. Sie können verschiedene Filter einrichten, wie Größe, Dateityp, Absender, Betreff der E-Mail, Datums- und Zeitstempel, um anzugeben, was Sie herunterladen möchten.

Im zweiten Schritt können Sie alle angehängten Dateien ausdrucken, sobald sie im angegebenen Ordner gespeichert sind. Dazu verwenden Sie den folgenden PowerShell-Einzeiler:

Get-ChildItem -Path 'C:\Temp\tmp2' -File | ForEach-Object { Start-Process -FilePath $_.Fullname -Verb Print -PassThru | %{sleep 10}}

Für die oben genannten Funktionen ist ein installiertes PDF-Produkt erforderlich, das das Verb „Drucken“ unterstützt, z. B. das kostenlose Foxit Reader, wo eine grafische Umgebung (Anmeldung) nicht erforderlich ist.

Dieses PowerShell-Skript kann in einer .ps1Datei gespeichert und die regelmäßige Ausführung im Taskplaner geplant werden.

Wenn Sie Adobe Reader verwenden, bleibt die neueste Version möglicherweise nach dem Drucken geöffnet. Dieses Problem lässt sich lösen, indem Sie das Skript folgendermaßen ändern:

Get-ChildItem -Path 'C:\Temp\tmp2' -File | ForEach-Object { Start-Process -FilePath $_.Fullname -Verb Print -PassThru | %{sleep 10;$_} | kill}

Antwort4

Sie könnten ein (ziemlich kleines) Python-Skript wie das folgende verwenden, das eine Verbindung herstellt, die erste Nachricht vom angegebenen Absender abruft und die Nachricht auf die Standardausgabe druckt. Anschließend können Sie mit munpack(Paket mpackin Debian) den Anhang abrufen und verarbeiten.

Die Nachrichtenanalyse kann auch durchgeführt werdenin Python, was bedeutet, dass Sie es nicht brauchen mpackund Ihre Lösung auf mehr Umgebungen portierbar wäre.

Überprüfenimaplibfür weitere Optionen, wie das Entfernen der Nachricht, wenn Sie fertig sind, oder das Durchführen anderer Sucharten.

import getpass, imaplib

M = imaplib.IMAP4("yourserver")
M.login("user","password")
M.select("INBOX")
typ, data = M.search(None, 'from','your_sender')

num = data[0].split()[0]
typ, data = M.fetch(num, '(RFC822)')
print 'Message %s\n%s\n' % (num, data[0][1])

M.close()
M.logout()

verwandte Informationen