none
Mails aus Outlook-Postfach von Exchange-Server abrufen

    Frage

  • Guten Tag zusammen,

    ich brauche dringend Hilfe, da ich gerade kurz vor der Verzweiflung stehe. Mein Ziel ist es, ein Outlook-Postfach, dass auf einem Exchange-Server liegt abzurufen, und die Mails anhand ihrer Metadaten und ihres Status (gelesen, ungelesen,..) zu bearbeiten. Leider habe ich bisher nur die Möglichkeit gefunden, mein eigenes Postfach abzurufen, das funktioniert auch wunderbar, ist aber absolut nicht das, was ich brauche. Zum gewünschten Postfach habe ich sowohl den User, als auch das PW, sodass mir der Zugang auf jeden Fall möglich ist.

    Gibt es überhaupt einen Weg, auf ein fremdes Postfach aus der Powershell heraus zuzugreifen? Wenn ja bräuchte ich dringend etwas Starthilfe, da ich sowieso erst seit ein paar Monaten mit der Powershell arbeite und mein Wissen dementsprechend eher oberflächlich ist.

    Besten Dank für eure Hilfe,

    SimonS180

    Freitag, 12. Mai 2017 07:48

Antworten

Alle Antworten

  • Hallo,

    das könnte mittels EWS (+ Impersonisation) erreicht werden, allerdings ist das schon etwas komplexer. Einen guten Einstieg in EWS und Powershell findet man bei Glen http://gsexdev.blogspot.de/

    Wie greifst Du denn auf die Mails von deinem Postfach per Powershell zu?

    Viele Grüße

    Torsten

    Freitag, 12. Mai 2017 11:00
  • worin besteht der Sinn dieser Aktion. Warum nicht mit Outlook?


    Chris

    Freitag, 12. Mai 2017 17:01
  • Moin,

    also wie Torsten schon sagte, EWS und nach Möglichkeit Impersonation (wobei man, wenn man Rechte auf das Postfach hat, dieses auch ohne Impersonation mit EWS anfahren kann). Alternativ natürlich (igitt!) IMAP, da geht es auch. Allerdings sind kostenlose PowerShell-Bibliotheken, die wirklich IMAP können, sehr rar, und Exchange-IMAP ist eben leider nicht das Linux-IMAP, mit dem diese Bibliotheken entwickelt und getestet werden.

    Du solltest vielleicht wirklich mal Code posten, der mit Deinem eigenen Postfach funktioniert und mit einem fremden nicht. Sonst ist die Diskussion relativ müßig. Dann können wir Dir garantiert helfen.


    Evgenij Smirnov

    I work @ msg services ag, Berlin -> http://www.msg-services.de
    I blog (in German) @ http://it-pro-berlin.de
    my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
    Exchange User Group, Berlin -> http://exusg.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com

    Freitag, 12. Mai 2017 19:40
  • Im Endeffekt geht es darum, mithilfe eines PS-Scripts täglich alle Mails aus ca. 150 Postfächern, die auf einem Server liegen, abzurufen und diejenigen, die bestimmte Kriterien erfüllen in eine .csv zu schreiben.

    Freitag, 19. Mai 2017 06:06
  • Mal eine generelle Frage, die mich gerade beschäftigt: Ist es überhaupt möglich, von meinem lokalen Rechner auf den Exchangeserver zuzugreifen? Beide sind zwar im selben Netzwerk, aber das heißt ja nichts. Oder muss ich ein Script schreiben, dass nur auf dem Server selbst laufen kann? Auch wenn meine Fragen etwas laienhaft wirken mögen, bin ich froh über jeden, der mir helfen möchte. Wenn ich das richtig verstehe, gibt es auf jenem Server eine Datenbank, die mehrere Postfächer beinhaltet. Zugang auf die Datenbank habe ich, jetzt ist die Frage, wie ich mich damit verbinden kann.

    Sollte die Frage nicht eindeutig sein, oder ihr grundsätzliche Probleme mit meinem Verständnis der Architektur seht, korrigiert mich bitte.

    Freitag, 19. Mai 2017 08:25
  • Moin,

    ja, es ist möglich. Der EWS-Zugriff ist ja ein HTTPS-Zugriff und nutzt nichts Administratives.

    Schau hier: https://msdn.microsoft.com/de-de/library/office/dd877012(v=exchg.150).aspx


    Evgenij Smirnov

    I work @ msg services ag, Berlin -> http://www.msg-services.de
    I blog (in German) @ http://it-pro-berlin.de
    my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
    Exchange User Group, Berlin -> http://exusg.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com

    Freitag, 19. Mai 2017 17:40
  • Hier mal mein Code, mit dem ich mein eigenes Postfach abrufen kann.

    $olFolderInbox = 6
    $outlook = new-object -com outlook.application
    $ns = $outlook.GetNameSpace("MAPI")
    $inbox = $ns.GetDefaultFolder($olFolderInbox)
    $inbox.items

    [...]

    Wo kann ich dann angeben, dass ich ein anderes Postfach abrufen möchte?

    Donnerstag, 8. Juni 2017 06:33
  • Moin,

    achso, Du benutzt Outlook, um auf das Postfach zuzugreifen. Wenn das fremde Postfach in Deinem MAPI-Profil mit angebunden ist, würdest Du es m.E. mit GetFolderByID statt GetDefaultFolder erreichen können, die ID musst Du vorher eruieren. Oder mit GetFolderPath, und dann brauchst Du den Anzeigen genau so, wie er im Outlook erscheint.

    Aber der Weg über EWS lohnt sich mehr, da bist Du von Outlook, Profil usw. völlig unabhängig.


    Evgenij Smirnov

    I work @ msg services ag, Berlin -> http://www.msg-services.de
    I blog (in German) @ http://it-pro-berlin.de
    my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
    Exchange User Group, Berlin -> http://exusg.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com


    • Bearbeitet Evgenij Smirnov Donnerstag, 8. Juni 2017 06:54 Spracherkennung bei Android ist der letzte Dreck
    Donnerstag, 8. Juni 2017 06:53
  • Habe es jetzt zumindest in soweit lösen können, als dass ich Informationen über die Mailboxes auf dem Server bekomme.

    Das sieht dann bisher so aus.

    RunspaceId          : 59e5b8cd-d8d9-454a-8165-945f8ce6954e
    Name                : Inbox
    Identity            : *********
    ParentFolder        : *********
    FolderStoreObjectId : LgAAAADbZ2qsNbpiQoFdr2uB5u5OAQBQoDgKlEAYRrMsFd8qTrxiAAAAAAEMAAAB
    FolderSize          : 20957
    HasSubfolders       : False
    FolderClass         : IPF.Note
    FolderPath          : {Inbox}
    DefaultFolderType   : Inbox
    ExtendedFolderFlags : 
    MailboxOwnerId      : *********
    IsValid             : True
    ObjectState         : Unchanged

    Ich weiß, dass in der Inbox genau eine Mail liegt. Wie bekomme ich Powershell dazu, mir genau diese Mail (bzw. natürlich alle, die in der Inbox liegen) auszugeben?

    Freitag, 9. Juni 2017 12:28
  • Google mal nach exchange und REST

    Chris

    Freitag, 9. Juni 2017 13:57