Przejdź do głównej zawartości

Synchronizator poczty z Exchange do Sharepoint




W poniższym artykule przedstawiam rozwiązanie zaimplementowane przez firmę APN Promise do synchronizacji wiadomości w czasie rzeczywistym z Exchange do SharePoint. Jego celem jest dostarczenie użytkownikowi dodatkowych możliwości pracy nad załącznikami wiadomości, które nie są dostępne w programie Outlook (jak np. edycja) oraz przyspieszenie dostępu do danych.

Zaplecze techniczne

Microsoft Exchange Serwer jest to zaawansowany system pocztowy przeznaczony dla rodziny systemów Windows. Klientem pocztowym przeznaczonym dla Exchange jest Microsoft Outlook. Microsoft SharePoint jest platformą webową przeznaczoną do zarządzania, publikowania i manipulacji danymi w sieciach korporacyjnych. Najczęstszym zastosowaniem jest przechowywanie dokumentów oraz praca zespołowa nad nimi.
Podczas użytkowania poczty internetowej może się zdarzyć sytuacja, w której skrzynka mailowa rozrośnie się do znacznych rozmiarów (wiele GB). Liczba wiadomości wtedy stanie się na tyle duża, że uniemożliwi płynną pracę użytkowników końcowych. Wydłużony zostanie czas komunikacji pomiędzy Microsoft Outlook (klient poczty Microsoft) a serwerem pocztowym Exchange, co uniemożliwi płynne wyszukiwanie i zarządzanie wiadomościami.
Jednym ze sposobów poradzenia sobie z tym problemem jest przeniesienie zawartości zbyt dużej skrzynki mailowej do biblioteki dokumentów w serwisie Microsoft SharePoint. Synchronizacja musi się odbywać w czasie rzeczywistym (lub bliskim rzeczywistego), aby na bieżąco dodawać nowe wiadomości do list SharePointowych. Dzięki przechowywaniu maili oraz załączników w formie plików w bibliotece dokumentów można zintegrować się z OneDrive i przeglądać wiadomości w Explorerze Windows.

Synchronizator

Synchronizator będzie działał jako SharePoint Timer Job. Timer job są to usługi SharePoint, które pracują w trybie cyklicznym – co określony czas. Zarządzanie Timer Job’ami odbywa się poprzez SharePoint 2016 Central Administration. W tym miejscu można wymusić uruchomienie lub wyłączenie Joba albo zmienić częstotliwość jego uruchamiania.

W skład synchronizatora wchodzą dwa moduły:
  • moduł odpowiedzialny za pobranie wiadomości ze skrzynki mailowej oraz
  • moduł odpowiedzialny za zapisanie wiadomości w liście dokumentów na SharePoint.
Każda wiadomość trafia do własnego folderu z dodatkowymi metadanymi (np. tytuł, od kogo) w bibliotece dokumentów. W każdym folderze znajdują się załączniki i treść wiadomości w pliku o rozszerzeniu html.
Zaimplementowany Timer Job uruchamia się co pewien czas, aby na bieżąco dodawać nowe wiadomości do biblioteki dokumentów w SharePoint (użyto interwał 5 minut). Przy każdym uruchomieniu Job tworzy kopie różnicową wiadomości – przenoszone będą tylko te wiadomości, których data wysłania jest późniejsza niż data ostatniej synchronizacji. Konfiguracja i data ostatniej synchronizacji aplikacji przechowywane są w obiekcie SPPersistedObject (globalnie współdzielony obiekt). Edycja konfiguracji Job’a jest dostępna z poziomu przeglądarki internetowej dzięki zaimplementowaniu dodatku do Centralnej Administracji SharePoint. Aby się tam dostać trzeba uruchomić SharePoint 2016 Central Administration i przejść do zakładki General Application Settings.

Usługa jest kompatybilna z następującymi wersjami Microsoft Exchange:
  • Exchange 2010
  • Exchange 2010 SP1
  • Exchange 2013
  • Exchange 2013 SP1 lub nowszy
Warto pamiętać również o tym, że przy dodawaniu daty do SharePointowego pola typu DateTime trzeba konwertować wartość do standardu ISO8601. W przeciwnym wypadku data zapisana w SharePoint pominie strefy czasowe i będzie się różnić od tej widocznej w Outlooku. Najlepszym rozwiązaniem jest użycie metody klasy SPUtility z referencji Microsoft.SharePoint
Przykładowy kod:

folder.Properties["MailSented"] = SPUtility.CreateISO8601DateTimeFromSystemDateTime(dateTime);

Widok listy dokumentów w SharePoint

Po uruchomieniu synchronizatora biblioteka dokumentów wypełni się wiadomościami pobranymi z poczty. Każda wiadomość jest przechowywana jako folder z dodatkowymi metadanymi (treść wiadomości, nadawca, czas wysłania). W każdym folderze jest przechowywany plik z oryginalną treścią wiadomości i załącznikami. Dzięki takiemu rozwiązaniu wszystkie funkcje SharePoint, takie jak wyszukiwarka, będą działać bezproblemowo. Użytkownicy końcowi mają też możliwość edycji załączników oraz ich synchronizacji na komputery poprzez usługę OneDrive for Bussiness.

Przy podwójnym kliknięciu załącznika/folderu zostanie wyświetlone okno modalne, w którym będzie można zobaczyć treść maila lub zawartość konkretnego pliku. Dzięki temu nie trzeba pobierać pliku na dysk komputera, podgląd możliwy jest bezpośrednio w przeglądarce internetowej.
Dodatkowym atutem takiego rozwiązania jest możliwość przeglądania treści przy pomocy exploratora Windows. Zarządzanie w ten sposób danymi przypomina zmapowanie folderu sieciowego. Użytkownicy mogą również w łatwy sposób zarządzać docelowym położeniem wiadomości w strukturze.

Podsumowanie

Stworzone  rozwiązanie oparte jest na SharePoint Timer Job, który ma zaimplementowany moduł odczytywania wiadomości z Exchange. Job działa w czasie rzeczywistym – co chwilę sprawdza czy na serwerze pocztowym są nowe wiadomości, a następnie zapisuje je w bibliotece dokumentów na SharePoint. Dzięki temu mechanizmowi można z łatwością zarządzać dużymi ilościami danych, odciążając jednocześnie serwer Exchange. Dodatkowym atutem tego rozwiązania jest możliwość zarządzania wiadomościami z poziomu windowsowego exploratora plików oraz edycji załączników.

Komentarze

Popularne posty z tego bloga

Wymiana dysku w Macbook Air 13 2017 na m2

Jestem wielkim miłośnikiem komputerów Apple. Uważam, że są one bardzo dobrze wykonane i przemyślane. Posiadam Macbooka Air 13 z 2017 roku (Model A1466) i jestem z niego bardzo zadowolony. Jedynym jego mankamentem jest zbyt mała pojemność dysku . Wersja laptopa, którą posiadam była wyposażona w dysk o pojemności 128 GB. Dla programisty .NET to stanowczo za mało! Ta pojemność starcza jedynie na zainstalowanie niezbędnych narzędzi programistycznych i stworzenie maszyny wirtualnej.  A gdzie miejsce na inne dane?  Zakup dysku pasującego do tego komputera o pojemności 512 GB to koszt ponad 2500zł. Nie warto narażać się na aż tak wysokie koszty - można to zrobić taniej.  Wystarczy kupić adapter ze złącza Apple (12pin-16pin) na złącze m2 i kompatybilny dysk na m2. W sumie wydamy nie więcej jak 500zł, czyli 5 razy mniej jak w przypadku zakupu dysku przeznaczonego do Macbooka, a efekt będzie taki sam. Samą przejściówkę zamówiłem z  aliexpress  za jedyne 30zł. Po przeanali

Virago 535, przedni gar nie pali tak jak trzeba

Ten wpis będzie mniej komputerowy, a bardziej hobbystyczno - mechaniczny. Tak jak wspominałem w zakładce O mnie, moim oczkiem w głowie jest mój wiekowy 22-letni motocykl Yamaha Virago 535. Jest to motor, który idealnie spełnia wymogi prawa jazdy kategorii A2. Nie jest wyposażony we żadne wtryski ani komputery pokładowe, jest to najbardziej klasyczne rozwiązanie z gaźnikiem i dźwignią ssania. Pod koniec zeszłego sezony miałem problem z przednim cylindrem. Virago 535 ma silnik w kształcie litery V i posiada dwa cylindry, które potocznie nazywamy garami. Mój motocykl z trudem odpalał i po rozgrzaniu silnika okazywało się często że przedni cylinder jest zimny – nie działa. Doraźnie pomogło wymiana świec i wizyta u miejscowego mechanika, który zapewniał ze wyregulował gaźniki i coś tam jeszcze zrobił i na pewno wszystko będzie działać jak należy. Ponieważ był to już późny październik  i dni były coraz chłodniejsze  nie miałem szansy w pełni przetestować czy wszystko działa jak trze

Praca Licencjacka: Implementacja gry komputerowej gatunku Hack’n Slash w oparciu o silnik Unity3D

Tytuł tematu mojej pracy licencjackiej to  Implementacja gry komputerowej gatunku  Hack’n Slash w oparciu o silnik Unity3D. Celem pracy jest implementacja gry komputerowej w oparciu o istniejący silnik Unity.  Gra Samurai jest gatunku Hack'n Slash. W grze wcielamy się w samuraja, który ma za zadanie pokonanie przeciwników. Do dyspozycji mamy podstawowy atak mieczem. Wraz z ilością pokonanych przeciwników siła i żywotność na naszego bohatera zwiększa się. Dodatkowo, w pracy opisano problematykę tworzenia gier komputerowych, początki przemysłu gier komputerowym, rynek gier komputerowych i najpopularniejsze obecnie silniki gier. Skupiono się głównie na opisaniu silnika Unity i zestawu narzędzi, które on oferuje. Został też dokładnie opisany sposób powstania gry Samurai - wszystkie funkcje i świat gry.   Jeżeli ktoś był by zainteresowany przeczytaniem mojej pracy dyplomowej to jest ona dostępna w czytelniach biblioteki SGGW.