M365 Mails mit bestimmten Betreff und älter als 72h in allen Postfächern löschen
Hallo,
ein Kunde führt gerade ein Ticket-System ein. Dadurch bekommen die Mitarbeiter bis zu 30 Mails pro Tag wegen neuer oder geänderter Tickets.
Darin steht nur eine Info und ein Link. Die können am nächsten Tag einfach gelöscht werden.
Das macht aber keiner.
Gibt es eine Möglichkeit alle M365 Mails mit bestimmten Betreff und älter als 72h in allen Postfächern zu löschen?
Per PS oder so?
Jeder könnte in seinem Outlook eine Regel dafür erstellen, aber das werden die meisten nicht hinbekommen oder schlicht nicht machen.
Stefan
ein Kunde führt gerade ein Ticket-System ein. Dadurch bekommen die Mitarbeiter bis zu 30 Mails pro Tag wegen neuer oder geänderter Tickets.
Darin steht nur eine Info und ein Link. Die können am nächsten Tag einfach gelöscht werden.
Das macht aber keiner.
Gibt es eine Möglichkeit alle M365 Mails mit bestimmten Betreff und älter als 72h in allen Postfächern zu löschen?
Per PS oder so?
Jeder könnte in seinem Outlook eine Regel dafür erstellen, aber das werden die meisten nicht hinbekommen oder schlicht nicht machen.
Stefan
Please also mark the comments that contributed to the solution of the article
Content-ID: 669338
Url: https://administrator.de/contentid/669338
Printed on: December 5, 2024 at 16:12 o'clock
7 Comments
Latest comment
Hallo Stefan,
Gruss Penny.
Jeder könnte in seinem Outlook eine Regel dafür erstellen, aber das werden die meisten nicht hinbekommen oder schlicht nicht machen
würde ich folgendermaßen versuchen zu erledigen:- es wird einmal einen Satz an Regeln für diese Thematik erstellt.
- Diese Regeln werden exportiert (gesichert)
- Weitere Personen importieren diesen Relgelsatz.
- Fertisch
Gruss Penny.
In Azure eine AppRegistration erstellen mit den MG Graph Berechtigungen für eine Application und den Scopes Mail.ReadWrite.All, User.Read.All, MailboxFolder.ReadWrite für alle Mailboxen. Dann noch Credentials für die App-Registration erstellen und Client-ID und Passwort notieren, oder Zertifikat generieren und das als Credential für den Login der Application nutzen.
Dann mit Powershell und der MG-Graph API alle Mailboxen holen mittels Get-MgUser. Dann per Schleife über die User und Get-MgUserMailFolderMessage die gewünschten Nachrichten per Filter-Parameter ausfiltern und mittels Remove-MgUserMessage diese Mails löschen. Done.
Gruß catrell
Dann mit Powershell und der MG-Graph API alle Mailboxen holen mittels Get-MgUser. Dann per Schleife über die User und Get-MgUserMailFolderMessage die gewünschten Nachrichten per Filter-Parameter ausfiltern und mittels Remove-MgUserMessage diese Mails löschen. Done.
Gruß catrell
Warum mit den Folgen beschäftigen wenn man die Ursache abstellen könnte
Wiso bekommen denn die Mitarbeiter 30 unwichtige Mails pro Tag und warum sind die am Folgetag noch unwichtiger?
Würde eher die Orga überdenken und das Ticketsystem vernünftig konfigurieren
PS: Der vorschlag von @150940 ist der richtige weg.
Wiso bekommen denn die Mitarbeiter 30 unwichtige Mails pro Tag und warum sind die am Folgetag noch unwichtiger?
Würde eher die Orga überdenken und das Ticketsystem vernünftig konfigurieren
PS: Der vorschlag von @150940 ist der richtige weg.
Servus Stefan.
Hier mal etwas M365 PS-Praxis für das Gewünschte mittels MG-Graph API.
Falls man nicht nur den Posteingang der Mailboxen durchsuchen möchte sondern auch sämtliche anderen Ordner der Mailbox. ersetze man die Zeile 34 durch diese Variante:
Viel Spaß damit.
Grüße Uwe
Hier mal etwas M365 PS-Praxis für das Gewünschte mittels MG-Graph API.
Neue Application Registration in Azure anlegen:
Client-ID notieren
Berechtigungen für die Graph API vergeben
Credentials generieren und geheimen Schlüssel notieren
Powershell-Skript
<#
Remove messages older than x days with subject that contains specific subject string from all users mailboxes inbox folder
#>
# Variables ----------------------------------------------------
# tenant domain
$tenant = 'xxxxxxxx.onmicrosoft.com'
# client id
$client_id = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
# client secret
$client_password = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
# subject substring to match
$subject_string = 'my subject to match'
# only messages older than x days
$date = (get-date).AddDays(-3).Date
# --------------------------------------------------------------
$ErrorActionPreference = 'Stop'
# needed modules
$modules = 'Microsoft.Graph.Mail','Microsoft.Graph.Users'
# install modules if needed
$modules | %{
if(!(Get-Module -ListAvailable -Name $_)){
Install-Module $_ -Force -Scope CurrentUser
}
Import-Module $_
}
# connect to MG Graph
Connect-MgGraph -Tenant $tenant -ClientSecretCredential (new-Object PSCredential($client_id,(ConvertTo-SecureString $client_password -AsPlainText -Force))) -NoWelcome
# process each users mailbox
foreach($user in Get-MGUser -All -Property Id,Mail){
# get messages with specific subject and older than x days from the inbox
foreach ($message in Get-MgUserMailFolderMessage -MailFolderId inbox -UserId $user.id -All -Property id,subject,ReceivedDateTime -Filter "contains(subject,'$subject_string') and ReceivedDateTime lt $($date.toString('s'))Z"){
try{
write-host "Removing message with subject '$($message.subject)' received on '$($message.ReceivedDateTime)' from mailbox '$($user.Mail)' ..." -F Green
Remove-MgUserMessage -MessageId $message.id -UserId $user.id
}catch{
write-host "Exception: $($_.Exception.Message)" -F Red
}
}
}
# disconnect MG Graph session
Disconnect-MgGraph | out-null
Falls man nicht nur den Posteingang der Mailboxen durchsuchen möchte sondern auch sämtliche anderen Ordner der Mailbox. ersetze man die Zeile 34 durch diese Variante:
foreach ($message in Get-MgUserMessage -UserId $user.id -All -Property id,subject,ReceivedDateTime -Filter "contains(subject,'$subject_string') and ReceivedDateTime lt $($date.toString('s'))Z"){
Viel Spaß damit.
Grüße Uwe
Als externer hat man da kaum eine Chance.
Wie gesagt, leider werden heutzutage viel zu oft nur die Symptome behandelt anstatt die Ursache anzugehen.
Da geht so viel Energie drauf ohne irgend einen positiven Effekt zu erlangen.
Bestes Beispiel ist der andere Beitrag mit der EÜR in Excel wo noch an einer kleinen funktionalen Erweiterung getüftelt wird, der „Elsterkram“ per Hand erstellt wird und andere Neuerungen wie die e-Rechnung komplett ausgeblendet wird.
Anstatt das ganze Vorgehen organisatorisch zu überdenken, die Entscheidung zu treffen welche Aufgabe der StB übernimmt und welche selber erledigt werden , und welche Schnittstelle der StB hat und darauf aufbauend die passende Software( egal ob Cloud oder on-Premise)auswählt.
Wie gesagt, leider werden heutzutage viel zu oft nur die Symptome behandelt anstatt die Ursache anzugehen.
Da geht so viel Energie drauf ohne irgend einen positiven Effekt zu erlangen.
Bestes Beispiel ist der andere Beitrag mit der EÜR in Excel wo noch an einer kleinen funktionalen Erweiterung getüftelt wird, der „Elsterkram“ per Hand erstellt wird und andere Neuerungen wie die e-Rechnung komplett ausgeblendet wird.
Anstatt das ganze Vorgehen organisatorisch zu überdenken, die Entscheidung zu treffen welche Aufgabe der StB übernimmt und welche selber erledigt werden , und welche Schnittstelle der StB hat und darauf aufbauend die passende Software( egal ob Cloud oder on-Premise)auswählt.