Przeniesienie wysłanej poczty do innego folderu
by vbatools on Oct.20, 2010, under Outlook, Porady
W dzisiejszych czasach (w dobie powszechnie dostępnych i darmowych kontach pocztowych), większość osób posiada więcej niż jedno konto.
W przypadku kont POP wszystkie wiadomości wędrują po wysłaniu do folderu „Wysłane elementy”. Nie wszystkim ten stan odpowiada. Można oczywiście grupować pocztę po nazwie konta i sortować po dacie zarazem, aby zachować porządek (rys 1), ale nie wszystkim to wystarczy. Niektórzy chcieli całkowicie rozdzielić wysyłaną pocztę.
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 da się ustawić przeniesienia wiadomości po wysłaniu. Użytkownik jest zmuszony do przenoszenia wiadomości ręcznie.
Poniższa procedura przenosi wiadomości do podfolderów „Wysłanych elementów”. Aby wizualizować 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. (wer ENG 2010)
Aby osadzić kod VBA należy otworzyć developera (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)
'MVP OShon from VBATools.pl
'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. (wer ENG 2010)
Aby procedura zadziałała należy ustawić zabezpieczenia Outlooka tak, aby makra były automatycznie respektowane. Kod był testowany na wersji 2007 na kontach POP.
(c) 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.