Somebytes SoftwareSomebytes Software Entwicklung

 

Mail Anhänge strukturieren!

Sie können mit EEAttachments Anhänge im Dateisystem strukturiert nach Betreff und Absender speichern.

Exchange Mails strukturiert exportieren

In dieser Anleitung zeige ich, wie Exchange Anhänge nach dem Export strukturiert werden können.

Um die Mailanhänge oder wenn Sie wollen, auch Mailinhalte in eine bestimmte Verzeichnisstruktur (Dateisystem) zu bringen, verwende ich hier ein Powershell-Script, welches durch EEAttachment aufgerufen wird.

In meinem Fall wird die PowerShell mit der Befehlszeile "C:\Windows\System32\WINDOWSPOWERSHELL\v1.0\powershell.exe" aufgerufen.

Als Parameter gebe ich folgendes an:

-executionpolicy bypass -file c:\temp\process.ps1 %from% %file% %subject%

Dabei ist das wichtigste die Scriptdatei process.ps1 und die entsprechenden Parameter, wie %from% als Mailadresse, %file% als exportierte Datei und %subject% als Mailbetreff. Der Betreff und die Von-Adresse soll als Verzeichnisname benutzt werden.

Anhänge exportieren und strukturiert nach Adresse und Betreff abspeichern

Die Verzeichnisstruktur soll nach dem Export der E-Mails wie folgt aussehen:

C:\Verzeichnis\Von-Mailadresse\Betreff\Dateiname

In der Scriptdatei (process.ps1) steht folgendes: 

$subject = $args[2] -replace '[:*#?\{\}\/\\|]','' 

$outdir = "C:\temp\EEAttachments\"+$args[0]+"\"+$subject+"\" 

if(!(Test-Path $outdir)) 

{

 md -Path $outdir  

}

Move-Item -Path $args[1] -Destination $outdir

Das Script soll wie folgt funktionieren:

Zeile 1: Betreff von Zeichen bereinigen die in Verzeichnisnamen verboten sind.

Zeile 2: Verzeichnisnamen bilden und in $outdir speichern.

Zeile 3-6: Wenn das Verzeichnis nicht vorhanden ist, soll es angelegt werden.

Zeile 7: Exportierte Datei in das Verzeichnis verschieben.

 

Die Ausführung von Powershell Scripten ist auch direkt möglich. Sie dazu diesen Beitrag.

Hier ein Beispiel, wie sie im Script die From Variable benutzen, um ein Verzeichnis zu erzeugen:


$from = Get-Variable -Name From -ValueOnly 
$attachment = Get-Variable -Name file -ValueOnly
$targetfolder = "N:\Belege\E_Mail" + $from.Address;
If (!(Test-Path $targetfolder))
{
 mkdir $targetfolder 

mv $attachment $targetfolder


Hier können Sie zwei Powershell scripts herunterladen, welche das oben beschriebene erweitert und eine Struktur From/Datum/Datei oder Mail erzeugt.

Das Script mailstruct.ps1 müssen Sie pro Mail starten und das attachmentstruct.ps1 pro Anhang.