Extrahieren Sie E-Mail-Anhänge, die Thunderbird mit Python erhalten hat

Ich habe zuvor einen Beitrag PDF an E-Mail in Textformat konvertieren konvertieren gepostet, und es scheint, dass er sehr beliebt war.

Ich werde über die modifizierte Version schreiben.

In 18.4. Postfach - Verschiedene Formate von Postfachoperationen

Beim Aktualisieren von Postfächern, die gleichzeitig durch einen anderen Prozess geändert werden können, ist besondere Vorsicht geboten. Das sicherste Postfachformat für solche Aufgaben ist Maildir. Vermeiden Sie die Verwendung eines einzelnen Dateiformats wie mbox für gleichzeitige Schreibvorgänge.

Und

Es gibt verschiedene Variationen des mbox-Formats, von denen jede behauptet, die Mängel des ursprünglichen Formats zu überwinden.

Da es so geschrieben wurde, wurde es in PDF an Mail angehängt ... von Cygwins procmail / fetchmail als Maildir-Format gelesen. Das von Thunderbird behandelte Mbox-Format kann von Pythons Mailbox-Bibliothek gelesen werden (wenn auch in einigen Dialekten), daher verwende ich die offizielle Python.org-Binärdatei.

Thunderbidr erstellt ein Verzeichnis, in dem E-Mails mit 8 zufälligen Zeichen gespeichert werden. Sie müssen diesen Bereich also neu schreiben.

#coding:utf-8

import os
import os.path
import sys

import email
import mailbox
import mimetypes

maildir =
'C:\\Users\\t.uehara\\AppData\\Roaming\\Thunderbird\\Profiles\\abcdef12.default\\Mail\\pop.example.com\\Inbox'

tempdir = 'C:\\Users\\t.uehara\\Downloads\\'

def extractMime(message):

    for part in message.walk():

        if part.get_content_maintype() == 'multipart':
            continue

        fname = part.get_filename()
        if fname != None:

            if fname.find(".zip") != -1:
                zipname = tempdir+fname

                #Verarbeitung überspringen, wenn Zip-Datei vorhanden ist
                if os.path.isfile(zipname) == False:
                    fp = open(zipname, 'wb')
                    fp.write(part.get_payload(decode=True))
                    fp.close()
                    print zipname

if __name__ == '__main__':

    for message in mailbox.mbox(maildir):
        extractMime(message)

Zusätzlich zum Speichern der Zip-Datei können Sie auch die komprimierte Protokolldatei lesen und eine entsprechende Verarbeitung durchführen. Da der Quellcode jedoch etwas überfüllt ist, werde ich ihn hinzufügen, wenn in den Kommentaren usw. eine Anfrage vorliegt. ..

Recommended Posts

Extrahieren Sie E-Mail-Anhänge, die Thunderbird mit Python erhalten hat
E-Mail-Anhänge über Ihr Google Mail-Konto mit Python.
[Automatisierung] Extrahieren Sie die Tabelle als PDF mit Python
Überprüfen Sie die E-Mail mit Python
Mail per Python senden
Senden Sie eine E-Mail mit Excel in Python
Senden Sie japanische Post mit Python3
Schaben mit Selen in Python
Schaben mit Chromedriver in Python
Debuggen mit pdb in Python
Umgang mit Sounds in Python
Scraping mit Selen in Python
Mail senden mit Python (Outlook)
Scraping mit Tor in Python
Tweet mit Bild in Python
Extrahieren Sie die Vorlage der aus Thunderbird gespeicherten EML-Datei mit python3.7
So extrahieren Sie einen Termin in Google Kalender mit Python
Extrahieren Sie mehrere Listenduplikate in Python
Zahlenerkennung in Bildern mit Python
Extrahieren Sie die xz-Datei mit Python
Testen mit Zufallszahlen in Python
GOTO in Python mit erhabenem Text 3
Arbeiten mit LibreOffice in Python: Importieren
[Automatisierung] Extrahieren Sie Outlook-Termine mit Python
Scraping mit Selen in Python (Basic)
CSS-Analyse mit cssutils in Python
Numer0n mit Elementen, die mit Python erstellt wurden
Öffnen Sie UTF-8 mit Stückliste in Python
Verwenden Sie rospy mit virtualenv in Python3
Extrahieren Sie mit Python Text aus Bildern
Einfache Mailübertragung mit Eile Python3
Verwenden Sie Python in pyenv mit NeoVim
Heatmap mit Dendrogramm in Python + Matplotlib
Lesen Sie Dateien parallel zu Python
Passwort für Lehrbuch mit Python generieren
Verwenden Sie OpenCV mit Python 3 in Window
Bis zum Umgang mit Python in Atom
[Python] Mail mit Outlook senden
Beginnen Sie mit Python mit Blender
Arbeiten mit DICOM-Bildern in Python
Senden Sie E-Mails über Google Mail mit Python 3.4.3.
Extrahieren Sie mit Python Zeichenfolgen aus Dateien
Spiralbuch in Python! Python mit einem Spiralbuch! (Kapitel 14 ~)
Versuchen Sie, sich mit Python bei qiita anzumelden
Stresstest mit Locust in Python geschrieben
Python3> im Schlüsselwort> Wahr mit teilweiser Übereinstimmung?
Geräteüberwachung durch On-Box Python von IOS-XE
Versuchen Sie, mit Binärdaten in Python zu arbeiten
Zeichnen Sie Nozomi Sasaki in Excel mit Python
Tipps zum Umgang mit Binärdateien in Python
Senden Sie mit Python (Python3) E-Mails an mehrere Empfänger.
Senden Sie eine E-Mail mit SES in Python und eine Kurznachricht mit SMS auf SNS
Zeigen Sie Python 3 im Browser mit MAMP an
So arbeiten Sie mit BigQuery in Python
Trump-Klasse in Python (mit Vergleich)
So extrahieren Sie einen Polygonbereich in Python
Verarbeiten Sie mehrere Listen mit for in Python
Einzeiler webServer (mit CGI) in Python