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.
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.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 342368
Url: https://administrator.de/forum/imap-mailboxen-belegten-speicher-abfragen-benutzerdaten-aus-csv-holen-und-ergebnis-in-csv-schreiben-342368.html
Ausgedruckt am: 08.01.2025 um 23:01 Uhr
4 Kommentare
Neuester Kommentar
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.
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.
Servus,
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:
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
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
Kommt hier noch was an Rückmeldung?
Wenn nicht, bitte den Beitrag noch als gelöst markieren. Danke.
Wenn nicht, bitte den Beitrag noch als gelöst markieren. Danke.