Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

eml nach Empfängeradresse sortiert verschieben

Mitglied: AS-N00

AS-N00 (Level 1) - Jetzt verbinden

13.06.2018 um 22:31 Uhr, 558 Aufrufe, 13 Kommentare

Hallo,

ich habe hier hundert tausende *.eml Dateien, also E-Mails aus unserer ERP-Software.
Die möchte ich gerne in ein DMS einlesen.
Leider sind die völlig ungeordnet, sollten. aber nach der Empfänger- und Absenderadresse sortiert in verschiedene Ordner verschoben werden.
Also nach dem "To:" und dem "From:" sortiert.
Das ganze läuft auf einem Win 2008 R2, aber ich hätte php drauf.
Hat da wer einen Ansatz?
Mitglied: colinardo
14.06.2018, aktualisiert 21.06.2018
Servus @AS-N00,
kein Problem, hier bspw. mit Powershell schnell erledigt, da wir nicht wissen wie du es genau einsortiert haben willst hier zwei mögliche Varianten (Ordner in Zeile 2 anpassen):

Variante 1 sortiert die Mails in Unterordner folgendermaßen: \<Absender-E-Mail>\<dateiname>.eml

01.
# Ordner in dem die EML-Dateien liegen 
02.
$folder = 'D:\Mails' 
03.
 
04.
gci $folder -Filter *.eml | ?{!$_.PSIsContainer} | group {[regex]::Match((gc $_.Fullname -ReadCount 1000 | out-string),'(?ism)^From:[^\r\n]*?(\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b)').Groups[1].Value} | %{ 
05.
    $target = "$folder\$($_.Name)" 
06.
    if (!(Test-Path $target)){md $target -Force | out-null} 
07.
    $_.Group | copy-item -Destination $target -Force -Verbose 
08.
}

Variante 2 sortiert die Mails in Unterordner folgendermaßen: \<Absender-E-Mail>\<Empfänger-E-Mail>\<dateiname>.eml

01.
# Ordner in dem die EML-Dateien liegen 
02.
$folder = 'D:\Mails' 
03.
 
04.
gci $folder -Filter *.eml | ?{!$_.PSIsContainer} | group {([regex]::Matches((gc $_.Fullname -ReadCount 1000 | out-string),'(?im)^(From|To):[^\r\n]*?(\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b)').Captures | select -First 2 | %{$_.Groups[2].Value}) -join "\"} | %{ 
05.
    $target = "$folder\$($_.Name)" 
06.
    if (!(Test-Path $target)){md $target -Force | out-null} 
07.
    $_.Group | copy-item -Destination $target -Force -Verbose 
08.
}
Grüße Uwe
Bitte warten ..
Mitglied: AS-N00
17.06.2018 um 12:21 Uhr
Hallo Uwe,

vielen Dank, das klappt wunderbar.
Nur habe ich über 700.000 Dateien und das schafft selbst unser Server nicht.
Was empfiehlst du?
Dateimenge aufsplitten oder kann das Skript das handeln?
Bitte warten ..
Mitglied: colinardo
17.06.2018, aktualisiert um 13:23 Uhr
Kein Problem, du kannst ja auch beim CMDLet get-content auf die ersten 30 Zeilen der Dateien einschränken (wenn to und from dort meist liegen) das spart nochmal Ressourcen.
Hab das schnell mal mit 300000 generierten Mails probiert, das war in 1 Minute durch, also kein Problem sofern ihr eine PS Version > 2.0 verwendet, das Ding war jetzt im obigen Beispiel nur auf "kompatibel" mit 2.0 getrimmt.
Bitte warten ..
Mitglied: AS-N00
18.06.2018 um 07:27 Uhr
OK, danke. Wie kann ich denn auf die ersten 30 Zeilen einschränken?
Bitte warten ..
Mitglied: AS-N00
18.06.2018 um 07:52 Uhr
Danke, ich schaue mir das gerne mal an, aber ich habe von PS noch überhaupt keine Ahnung. Wo muss ich den Wert denn setzen in obiger Variante 2?
Wäre nett wenn du mir das verraten würdest.
Bitte warten ..
Mitglied: colinardo
18.06.2018, aktualisiert um 07:59 Uhr
aber ich habe von PS noch überhaupt keine Ahnung.
Dann wird's Zeit das zu ändern ... Zeile 4
gc $_.Fullname -Totalcount 30
Bitte warten ..
Mitglied: AS-N00
18.06.2018 um 08:03 Uhr
Ja, versprochen.
Ich war schon fast richtig, hatte nur eine überflüssige Pipe drin.
Danke.
Bitte warten ..
Mitglied: AS-N00
18.06.2018 um 08:33 Uhr
Es scheint aber nichts zu bringen, das Skrip läuft wieder ewig.
Ich habe mir extra PS 6 heruntergeladen, aber hat nix gebracht.
Bitte warten ..
Mitglied: colinardo
18.06.2018, aktualisiert um 08:52 Uhr
Tja, Glaskugel polieren was du für eine lahme Kiste du damit beschäftigst ist mir dann doch zu blöde.
Optimierte Version ohne PS 2.0 Kompatibilität wie oben schon erwähnt darfst du gerne gegen Cash abgreifen.
Bitte warten ..
Mitglied: AS-N00
18.06.2018 um 09:25 Uhr
Win 2008 R2
E5520 XEON mit 2,27 GHz 2 Prozessoren
192 GB RAM

PS 2.0 läuft ja bei mir.
Bitte warten ..
Mitglied: Heidjerjung
21.06.2018 um 16:21 Uhr
Das läuft super, auch mit der Einschränkung der Abfragelänge.
ich habe das Script erweitert um die Felder für cc und bbc aus auszuwerten. Klappt alles.
Ich habe bei Test festgestellt, dass bei mehreren Email-Adressen immer nur die erste genommen wird.
Wer kann da helfen?

Gruß der Heidjerjung
Bitte warten ..
Mitglied: colinardo
21.06.2018, aktualisiert um 19:45 Uhr
Zitat von Heidjerjung:
Ich habe bei Test festgestellt, dass bei mehreren Email-Adressen immer nur die erste genommen wird.
Klar, weil der Regex nur die erste nimmt sonst würde ja der Rest der Skriptlogik von oben nicht mehr passen.
Die Anpassung ist kein Problem, was aber wichtiger wäre zu wissen wie die Ordnerstruktur dann bei dir aussehen soll, da gibt es ja viele Möglichkeiten, wie z.B. weitere Unterordner für jede Adresse und dort jeweils eine Kopie der Datei rein, oder die Adressen alle in einen Ordnernamen gepresst mit Trennzeichen, etc. pp. Das kann sich hier ja keiner aus den Fingern saugen.
Wer kann da helfen?
Kann ich gerne, aber dann bitte via PN, das Übernehmen von fremden Threads ist hier nicht so gern gesehen.

Grüße Uwe
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Datei von einem Ordners alphabetisch sortiert in Unterordnern verschieben

gelöst Frage von xyxy-yxBatch & Shell4 Kommentare

Hallo, Ich möchte von allen Dateien eines Ordner den ersten Buchstaben auslesen und mittel einer for-Schleife und if-Bedingungen die ...

Netzwerkmanagement

Wie sortiert und archiviert Ihr Statusmails?

Frage von StefanKittelNetzwerkmanagement6 Kommentare

Hallo, wir haben hier eine EMail-Adresse (Exchange-Konto) wo die ganzen Status-Mails der Kunden-IT auflaufen. Also Datensicherung, USV, IPMI, Monitoring, ...

Exchange Server

Outlook Exchange 2013 Anzeige von Empfängeradresse

Frage von Manuel.NeujahrExchange Server4 Kommentare

Guten Abend, ich habe ein Exchange Konto mit mehreren Adressen. Ich mochte nun im OWA bzw. Outlook sehen an ...

E-Mail

Tool Anhang aus Eml Datei extrahieren

Frage von Lebowski23E-Mail1 Kommentar

Hallo, Ich habe einige 100 eml Datein, die alle einen Anhang haben. Ich würde gerne automatisiert alle Anhänge extrahieren ...

Neue Wissensbeiträge
Netzwerkmanagement
Win 10 - wiederaufnahme in Domäne scheitert
Anleitung von Seesturm vor 7 StundenNetzwerkmanagement1 Kommentar

Ich habe ein kleines Netzwerk mit einem Domänencontroller Server 2012 R2. Die meisten Rechner laufen unter Windows 7. Vor ...

Internet

Europa baut Zensurinfrastruktur auf: EU-Parlament stimmt für Upload-Filter, Leistungsschutzrecht und gegen KI-Forschung

Information von Frank vor 1 TagInternet6 Kommentare

Eine sehr schlechte Entscheidungen für die Zukunft Europas ist gefallen: Der Rechtsausschuss im EU-Parlament stimmte heute morgen in einer ...

Windows 10

Mikrofon von Headset geht nach Update auf Windows 10 1803 nicht mehr

Tipp von Deepsys vor 3 TagenWindows 102 Kommentare

Ich verwende ein Plantronics Headset das per USB mit dem Windows 10 PC verbunden ist. Damit kann ich auch ...

Video & Streaming

Ruckelfreies Fernsehen auf Smartphone oder Tablet - in SD oder gar HD - Eine Alternative zum Fritz DVB-C Receiver

Anleitung von power-user vor 3 TagenVideo & Streaming9 Kommentare

Wer kennt das nicht: Man möchte gemütlich auf dem Balkon sitzen und vielleicht grillen und dabei das WM-Spiel gucken ...

Heiß diskutierte Inhalte
Instant Messaging
Whats App Business am PC einsetzen
Frage von thomasreischerInstant Messaging30 Kommentare

Hallo zusammen, wir würden demnächst gerne WhatsApp Business verwenden um den Kontakt zwischen Kunden und Mitarbeitern zu erleichtern. Natürlich ...

Windows 7
Windows 7 Benutzer wechsel nicht möglich
gelöst Frage von OSelbeckWindows 727 Kommentare

Hallo, ich habe hier einen Windows 7 Rechner, der in der Domäne war. Jetzt passiert beim starten, das ich ...

Windows Netzwerk
IP-Adresskonflikt
Frage von Turbo-MasterWindows Netzwerk24 Kommentare

Hallo zusammen, ich habe ein Problem mit unserem Netzwerk unter Windows Server. Ständig erhalten wir die Meldung, dass ein ...

Festplatten, SSD, Raid
RAID auflösen Synology DS213j!
gelöst Frage von Hendrik2586Festplatten, SSD, Raid19 Kommentare

Guten Morgen meine Lieben! :) Diese Frage wird sich sicherlich schon der ein oder andere gestellt haben. Es geht ...