
Przeniesienie wysłanej poczty do innego folderu
tagi: wysyłanie, wiadomość, przenoszenie, Outlook, folder, poczta
1 komenarz | Dodaj komentarz
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.

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.

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.

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.
Shon Oskar – www.VBATools.pl
© Wszelkie prawa zastrzeżone. Żadna część ani całość tego artykułu nie może być powielana ani publikowana bez zgody autora.

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?