bluestarde
Goto Top

IMAP - Mailboxen - belegten Speicher abfragen - Benutzerdaten aus CSV holen und Ergebnis in CSV schreiben

Hallo zusammen,

gibt es ein Tool, oder eine Möglichkeit per batchdatei, eine ganze Liste an Mailkonten per IMAP nach dem belegten Speicher abzufragen?

Ich möchte also wissen, wieviel MB/GB der User aktuell auf dem Server belegt.

Ich habe eine Excel-Liste mit den ganzen Benutzerdaten (User, KW)!

Die würde ich gerne abarbeiten lassen. Die Ergebnisse sollen in eine Textdatei geschrieben werden.

Jemand eine Idee?

Entweder hab ich falsch gegoogelt, oder es ist wirklich nicht so einfach, wie ich mir das vorstelle...

Achso, als Info: Ich habe keinen Direktzugriff auf den Mailserver.

Schonmal Danke im Voraus.

Content-Key: 342368

Url: https://administrator.de/contentid/342368

Printed on: April 27, 2024 at 03:04 o'clock

Member: kaiand1
kaiand1 Jul 04, 2017 at 06:05:41 (UTC)
Goto Top
Nun das du die Zugangsdaten hast und auf die Konten Zugreifen möchtest, solltest du mal mit den Datenschutzbeauftragten Reden...

Ihr habt also einen einen Webspace mit Mailadressen oder nur Mailspeicher...
Da habt ihr jedoch von euren Provider ein Webinterface mit Zugangsdaten erhalten um die Adressen zu Verwalten und dort gibt es quasi bei jeden schon eine Auflistung wie viel Speicher Belegt wird ect.

Aber du kannst auch mal den Support diesbezüglich Nachfragen ob diese euch den Aktuelle Belegung zukommen lassen können.

Denkt nur an die Mailarchivierung die seit einiger Zeit Gesetzlich Pflicht ist, darüber könntest du dies ggfs auch machen je nach System das ihr Verwendet.
Member: colinardo
colinardo Jul 04, 2017 updated at 13:55:04 (UTC)
Goto Top
Servus,
Entweder hab ich falsch gegoogelt, oder es ist wirklich nicht so einfach, wie ich mir das vorstelle...
Eigentlich kein Hexenwerk so lange der IMAP-Server das GETQUOTA Kommando unterstützt.

Da habe ich ein kleines Powershell-Beispiel dafür. Benötigt wird die passende .NET DLL aus dem Projekt ImapX die ins Skriptverzeichnis abzulegen ist.

Für die Quelldaten gehe ich einfach mal von folgendem Format aus:
"server";"username";"password"
"imap.domain.de";"USERNAME";"PASSWORD"
"imap.domain2.de";"USERNAME";"PASSWORD"

# Pfad zu den Serverdaten
$quelle = 'C:\liste.csv'  
# Pfad zur Ausgabedatei
$ziel = 'C:\usage.csv'  

if ($PSVersionTable.PSVersion.Major -lt 3){write-host "ERROR: Minimum Powershell Version 3.0 is required!" -F Yellow; return}    

# IMAPX DLL laden
Add-Type -Path "$psscriptroot\ImapX.dll"  
$imap = New-Object ImapX.ImapClient

(Import-CSV $quelle -delimiter ";") | %{  
    $imap.Host = $_.server
    $imap.Port = 993
    $imap.UseSsl = $true
    try{
        # Verbinden
        $imap.Connect() | out-null
        # Login
        $imap.Login($_.username,$_.password) | out-null
    
        $list = new-object "System.Collections.Generic.List[string]"  
    
        $imap.SendAndReceive('GETQUOTA ""',[ref]$list, $null,[System.Text.Encoding]::UTF8,$false) | out-null  
        $result = [regex]::match($list,'(?is)STORAGE (\d+) (\d+)')  
        if ($result.Success){
            [pscustomobject]@{
                'Mailbox' = $_.username  
                'Used(MB)' = ("{0:N2}" -f ([decimal]$result.Groups[1].Value / 1kb))  
                'Limit(MB)' =  ("{0:N2}" -f ([decimal]$result.Groups[2].Value / 1kb))  
                'Free(MB)' = ("{0:N2}" -f (([decimal]$result.Groups[2].Value - [decimal]$result.Groups[1].Value)/1kb))  
            }
        }
        # Beende Session
        $imap.Disconnect()
    }catch{
        throw $_
    }
} | export-csv $ziel -delimiter ";" -NoType -Encoding UTF8  

$imap.Dispose()

Das ganze lässt sich auch mit jeder anderen Programmier/Skript-Sprache umsetzen so lange man damit eigene IMAP-Commands auf den IMAP-Server absetzen kann. Da sind einem keine Grenzen gesetzt.

Mehr Support gibt's gerne via PM

Grüße Uwe
Member: colinardo
colinardo Jul 06, 2017 at 07:47:51 (UTC)
Goto Top
Kommt hier noch was an Rückmeldung?
Wenn nicht, bitte den Beitrag noch als gelöst markieren. Danke.
Member: BlueStarDE
BlueStarDE Jul 06, 2017 at 07:53:50 (UTC)
Goto Top
Ja, ich teste das noch diese Woche! Melde mich definitiv zurück!