Przeniesienie wiadomości do kosza folderu IMAP z Elementy wysłane
by vbatools on Feb.15, 2012, under Outlook, Porady
Tematem tej porady jest potrzeba przeniesienia wiadomości po jej usunięciu z folderu elementy wysłane do folderu skrzynki, z której został on wysłany. Konta IMAP można skonfigurować tak, aby wskazać kierunek poczty przychodzącej oraz utworzyć regułę na skopiowanie wiadomości w obrębie struktury dostępnych folderów. Niestety usunięcie z przeniesieniem nie jest możliwe.
Proces ten nie jest skomplikowany ale wymaga utworzenia programu w VBA. Zaprogramowanie go, będzie opierało się na odrębnej procedurze. Powodem jest fakt iż Outlook nie posiada procedury zdarzeniowej, która by wywoływała czynność po usunięciu obiektu.
Rys 1. Opis schematu postępowania w strukturze folderów IMAP (przesłany przez Capacitor).
Poniżej umieszczone makro ma na zadanie przenieść wskazany lub otwarty mail, jednakże wywołanie tej procedury musi być podłączone do odrębnego przycisku. Dzięki mechanizmowi “Dostosowanie wstążki” dostępnego w opcjach Outlooka, jest możliwość dodania przycisku z podpiętym makrem. Samo podpięcie realizuje się po przez wybrania polecenia z grupy “Makra” a następnie w sekcji”Dostosuj wstążkę” utworzyć nową grupę i dopiero do niej dodać kod. Dodatkowo możemy zmienić nazwę wyświetlaną i dodać obrazek ikony.
Rys 2. Utworzenie skrótu do procedury VBA
Rys 3. Dostosowanie widoku
Sub Przenies_do_kosza_konta_imap() 'MVP OShon from VBATools.pl Dim oMail As MailItem, oFolder As MAPIFolder On Error GoTo blad Select Case TypeName(Application.ActiveWindow) Case "Explorer": Set oMail = ActiveExplorer.Selection.Item(1) Case "Inspector": Set oMail = ActiveInspector.CurrentItem Case Else: Exit Sub End Select Dim konto As String: konto = oMail.SendUsingAccount Set oFolder = Application.GetNamespace("MAPI").Folders(konto).Folders("Deleted Items") oMail.Move oFolder koniec: If Not oFolder Is Nothing Then Set oFolder = Nothing If Not oMail Is Nothing Then Set oMail = Nothing Exit Sub blad: MsgBox Err.Number & " " & Err.Description, vbExclamation, "VBATools.pl" Resume koniec End Sub
Podobnie modyfikuje się wstążkę dla otwartej wiadomości.
(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.