E-Mail Header via Powershell auslesen
Hallo,
ich suche ein Möglichkeit, die Header Informationen aller E-Mails eines Exchange Online Postfaches auszulesen und daraus die IP-Adressen (Received From) in eine Datei zu schreiben.
Wir haben ein Postfach, auf das alle User SPAM weiterleiten. Anhand der IP-Adresse im Header kann ich diese dann Blacklisten.
Natürlich kann ich mir die Header Infos auch manuell anzeigen lassen. Bei 50000 E-Mail wird das allerdings etwas schwierig.
Ist so etwas mit einem Office 365 Postfach möglich? Und lassen sich auch spezifische Bereiche, wie zum Beispiel die IP-Adresse herausnehmen?
Danke und beste Grüße
Tom
ich suche ein Möglichkeit, die Header Informationen aller E-Mails eines Exchange Online Postfaches auszulesen und daraus die IP-Adressen (Received From) in eine Datei zu schreiben.
Wir haben ein Postfach, auf das alle User SPAM weiterleiten. Anhand der IP-Adresse im Header kann ich diese dann Blacklisten.
Natürlich kann ich mir die Header Infos auch manuell anzeigen lassen. Bei 50000 E-Mail wird das allerdings etwas schwierig.
Ist so etwas mit einem Office 365 Postfach möglich? Und lassen sich auch spezifische Bereiche, wie zum Beispiel die IP-Adresse herausnehmen?
Danke und beste Grüße
Tom
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 427411
Url: https://administrator.de/forum/e-mail-header-via-powershell-auslesen-427411.html
Ausgedruckt am: 22.02.2025 um 23:02 Uhr
7 Kommentare
Neuester Kommentar

Ja. EWS ist dein Stichwort
Btw. diese Arbeit nehmen dir schon diverse Dienste ab.
Und lassen sich auch spezifische Bereiche, wie zum Beispiel die IP-Adresse herausnehmen?
Ja. Mit Regular Expressions ein Kinderspiel.daraus die IP-Adressen (Received From)
Btw. das ist keine gute Idee, denn daraus müsstest du die Microsoft Anti-SPAM Tennants ausnehmen, die stehen nämlich ebenfalls in den "Received" Headern ... X-Sender-IP oder X-originating-IP wäre hier das Mittel der Wahl.Btw. diese Arbeit nehmen dir schon diverse Dienste ab.

EWS konnte ich jetzt schon mal erfolgreich Testen und mich zumindest mit dem Postfach verbinden bzw. Mails über die Powershell abrufen.
Die Header stehen in der Eigenschaft InternetMessageHeaders jeder E-Mailnachricht.Was genau meinst Du denn für Dienste?
https://www.heise.de/netze/tools/spam-listen/
Exception calling "FindItems" with "2" argument(s): "The Url property on the ExchangeService object must be set."
Da steht's doch wort wörtlich...Du hast die URL des EWS Dienstes ($service) nicht festgelegt, du hast sie nur in eine Variable geschrieben sonst nüscht , da ist die Meldung also nicht verwunderlich...Lesen hilft
https://docs.microsoft.com/de-de/exchange/client-developer/exchange-web- ...

Wie gesagt X-SENDER-IP oder X-ORIGINATING-IP schreibt MS in alle eingegangenen Mails dann brauchst du das auch nicht dort steht sie im Klartext schon frei Haus
.
Und wenn du's trotzdem nicht lassen kannst als Lernhäppchen: '(?is)(?<=from[^\(]+\(\[?)[\d\.:a-f]+'
Und wenn du's trotzdem nicht lassen kannst als Lernhäppchen: '(?is)(?<=from[^\(]+\(\[?)[\d\.:a-f]+'