Data Mining w skrzynce pocztowej z użyciem obiektów COM – zajawka

28 marca 2017 at 21:48

Sytuacja awaryjna – tysiące wiadomości e-mail na skrzynce pocztowej, na które trzeba odpowiedzieć w krótkim czasie jedną uniwersalną wiadomością. Niestety o autoresponderze (Out-Of-Office) lub o regule na skrzynce pocztowej nikt nie pomyślał wcześniej, o regule transportowej na Exchange’u już nie wspominając…

Mamy w zasadzie 2 alternatywy:

  1. Odpowiadać na wszystkie wiadomości po kolei (albo zbiorczo) z GUI, przy czym problematyczne będzie tutaj upchanie różnych odbiorców w pole BCC (UDW)
  2. Zebrać informację o nadawcach wiadomości i wysłać zbiorczego maila dodając ich wszystkich do pola BCC.

Problem jest w zasadzie tylko z „zebraniem nadawców”. Można próbować kopiować, eksportować maile, cuda wianki ale zajmuje to mnóstwo czasu a i efekt mizerny.

 

Podejdźmy do tego jak na administratora przystało – użyjmy Powershella 😉

Wykorzystamy do tego obiekty COM’owe Outlooka. Szybkie googlowanie da podpowiedzi w stylu:

Po wykonaniu zonk – niemiła niespodzianka:

Inne odmiany z Load Assembly również zwracają ten sam błąd… :(

A jakie jest rozwiązanie? Jak zwykle trywialne :) Outlook na 99% w wersji 32-bitowej a Powershell uruchomiony standardowo w wersji 64-bitowe i tu jest zgrzyt. Wystarczy uruchomić Powershella x84

PS84

I obiekt COM’owy nie okrzyczy nas już błędami :) Reszta jest już prosta, łatwa i przyjemna (jeśli ktoś jest zaznajomiony z programowaniem obiektowym i potrafi wyszukać sobie odpowiednie metody) – można przystępować do Data Mineing’u

Poniżej prosty przykład wykorzystania:

Nie licząc komentarzy i pomijając linijkę z wyszukiwaniem folderów na skrzynce – w 4 linijkach mamy interesującą nas informację, czyli wszystkie adresy nadawców wiadomości e-mail.

Możemy jeszcze ostatnie i przedostatnie polecenie zwinąć do jednej linijki i wtedy główny problem mamy rozwiązany w 3 linijkach kodu:

Dalej jest już z górki – wysłanie maila do nadawców z Powershella (Send-MailMessage … ), albo wrzucenie listy do Outlooka (ee… Jak zwierzęta? )

Enjoy – może komuś uratuje tyłek 😉