Microsoft Outlook troubleshooting

W dzisiejszych czasach (w dobie powszechnie dostępnych darmowych kont pocztowych), większość osób posiada więcej niż jedno konto email. W przypadku kont POP wszystkie wiadomości wędrują po wysłaniu do folderu „Wysłane elementy”. Nie dla każdego takie rozwiązanie jest zadowalające. Można oczywiście grupować pocztę po nazwie konta i sortować po dacie, aby zachować porządek (Rys.1), lub całkowicie rozdzielić wysyłaną pocztę. Lecz również ta opcja nie jest w pełni wystarczająca.

 Wysłane elementy
Rys.1. Grupowanie po nazwie konta z sortowaniem po dacie.

Outlook posiada dość dobrze wyposażonego kreatora reguł, lecz niestety opcji dotyczących poczty wychodzącej jest niewiele. Nie ma np. opcji przenoszenia wiadomości po wysłaniu. Użytkownik jest zmuszony do przenoszenia wiadomości ręcznie.

Poniższa procedura przenosi wiadomości do podfoldera „Wysłanych elementach”. Aby zilustrować przykład stworzony został folder o nazwie "VBATools Send Items", którego nazwa znajduje się w kodzie.

Utworzenie podfolderu
Rys.2. Utworzenie podfolderu elementów wysłanych.

Aby osadzić kod VBA należy otworzyć moduł deweloperski (Alt+F11) i osadzić poniższy kod w klasie "ThisOutlookSession":

Option Explicit
Private WithEvents oSentItems As Items

Private Sub Application_Startup()
Set oSentItems = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderSentMail).Items
End Sub

Private Sub oSentItems_ItemAdd(ByVal Item As Object)
    'Warunek na konto (pole "Imię i Nazwisko" z konfiguracji konta)
    'dla przykładu moje nazywa się: VBATools
    If Item.SenderName = "VBATools" Then

        'lub można określić warunek na adres odbiorcy, którego nie rozważamy
        'If item.To = "John.Doe@Redmond.com" Then

Item.Move Application.GetNamespace("MAPI").GetDefaultFolder(olFolderSentMail).Folders("VBATools Send Items")
    End If
End Sub

Po osadzeniu kodu należy pamiętać o ponownym uruchomieniu aplikacji, wraz z zapisem projektu.
 

Wysylanie wiadomości
Rys.3. Wysyłanie wiadomości z konta o nazwie określonego w kodzie.

Aby procedura zadziałała należy ustawić zabezpieczenia Outlooka tak, aby makra były automatycznie respektowane. Kod był testowany na wersji 2007/2010 na kontach POP.

MVP Shon Oskar – VBATools.pl
Jeśli masz pytania dot. tego artykułu zapraszam na Forum
Skonfiguruj swój pakiet dodatków do Excela, Worda, PowerPointa i Outlooka



© Wszelkie prawa zastrzeżone. Żadna część ani całość tego artykułu nie może być powielana ani publikowana bez zgody autora.

Komentarze

Komentarze
marcin
marcin 2012-04-14 02:50:41
mam podpiętych kilka skrzynek pocztowy. Uruchomiłem opisane w artykule makro i działa ono w ten sposób, że przenosi wysłaną wiadomość do wskazanego podfolderu w wysłanych (ale mojej głównej skrzynki). Pytanie jak zrobić by wiadomość przenosiła się do foldru "wysłane" ale skrzynki która jest jako nadawca?
pablo
pablo 2012-06-13 09:53:37
podpinam się do Pytania marcina
OShon
OShon 2012-09-28 17:03:00
Wystarczy zmienić ścieżkę folderu docelowego, zamieniając domyślną lokalizację na zdefiniowaną. Proszę o zadawanie pytań na forum. Będzie łatwiej wyszukać odpowiedzi przy podobnych problemach (nie tylko dot. tego artykułu). Niemniej jednak proszę się na niego powołać.
Daniel Z
Daniel Z 2013-08-06 22:34:20
Witam, osadziłem taki kod i niestety nie działa, proszę o sprawdzenie: Option Explicit Private WithEvents oSentItems As Items Private Sub Application_Startup() Set oSentItems = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderSentMail).Items End Sub Private Sub oSentItems_ItemAdd(ByVal Item As Object) If Item.SenderName = "OZ" Then Item.Move Application.GetNamespace("MAPI").GetDefaultFolder(olFolderSentMail).Folders("KAS") End If End Sub
Oskar Shon
Oskar Shon, VBATools 2014-10-15 12:51:12
Daniel, Po pierwsze to nie wiem czy masz uruchomione Makra, po drugie czy na pewno twoje konto nosi nazwę "OZ", po trzecie czy w głównym folderze wysłane masz podfolder "KAS". Polecam użycie Breaking Pointa i przeanalizowanie kodu. Zapraszam do dyskusji na forum. Stąd nie otrzymuje powiadomień o aktywności. Mogę podpowiedzieć jak zbadać ścieżkę czy pobrać nazwy kont.
Xyz
Xyz 2015-05-20 09:11:13
Witam, działa wszystko również na Outlook 2003. Bardzo przydatny artykuł.