VBATools

Oznaczenie lub przeniesienie niechcianych wiadomości e-maili

by on Jan.25, 2012, under Outlook, Porady

Dużym problemem jest fakt odbierania niechcianej poczty. Czy tego chcemy czy nie nasze adresy są sprzedawane lub pozyskiwane w inny sposób przez firmy reklamujące swoje usługi. Firmy tworzące programy antywirusowe prześcigają się w mechanizmach realizujących modyfikacje wiadomości tak, aby w dużym prawdopodobieństwie użytkownik miał świadomość, iż odebrana poczta nie pochodzi od nikogo, z kim wcześniej korespondujemy.

Można do tego tematu podejść z innej strony. Na kształt naszych reakcji, gdy podczas odbierania rozmowy z telefonu komórkowego spoglądamy, kto do nas dzwoni i tak potraktujemy pocztę przychodzącą. W większości nasza korespondencja jest zorientowana na osoby, jakie mamy w folderze kontakty.

OL_Oznaczenie_Maili_od_Obcych
Rys 1. Widok oznaczenia niechcianej poczty w konfiguracji POP3

Powyżej przedstawiony sposób, który pokazuje jak możemy, przy wyciągnięciu pola kategorie oznaczyć te wiadomości, jakich wcześniej nie dodaliśmy do kontaktów. Taka modyfikacja wiadomości daje nam dodatkowe możliwości: np. sortowanie po danej kolumnie, gdzie z góry możemy spodziewać się że w węźle „ALIEN” będzie sama nieautoryzowana poczta.

Podczas umieszczania kodu w developerze VBA, należy wiedzieć, iż dla kont IMAP/Exchange wiadomości nie mogą być modyfikowane. Struktura i założenia tych kont pozwala jedynie synchronizować wiadomość z miejscem jego alokacji. Wszelkie modyfikacje treści, tematu czy innych pól standardowych nie powiedzie się. W tym celu najlepszym sposobem jest przesuniecie wiadomości do innego folderu (w przykładzie folder „Wiadomości-śmieci”, który to może być zamieniony na inny, utworzony przez użytkownika folder).

Sub Incoming_contact_found(oMail As MailItem)
'MVP OShon form VBATools.pl
If oMail.Class <> olMail Then Exit Sub
Dim adres$, oContactFolder As MAPIFolder
Dim oItems As Items, oContact As ContactItem
'Dim oDestFolder As Outlook.Folder 'dla kont Imap/Exchange
'Set oDestFolder = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderJunk)

adres = oMail.SenderEmailAddress 'Recipients(1).Address 'for oldest version
 Set oContactFolder = Application.GetNamespace("MAPI"). _
 GetDefaultFolder(olFolderContacts)
 Set oItems = oContactFolder.Items

 FindContact = False
 adres = """" & adres & """"

 Set oContact = oItems.Find("[Email1Address] =" & adres & " or " & _
 "[Email2Address] =" & adres & " or [Email3Address] =" & adres & "")

If oContact Is Nothing Then 
 oMail.Categories = "ALIEN" 'tylko dla kont POP3
 oMail.Save
 'oMail.Move oDestFolder    'dla Imap/Exchange jako przeniesienie do innego folderu
end if
 'Set oDestFolder = Nothing
 Set oContactFolder = Nothing
 Set oContact = Nothing
 Set oItems = Nothing
End Sub

Procedurę umieszczamy w module [Alt+F11]/Menu/Insert/Module a następnie zapisujemy nasz projekt.

OL_Oznaczenie_Maili_od_Obcych_Regula
Rys 2. Podłączenie reguły w Outlooku

Rysunek nr 2. pokazuje jak podpiąć sparametryzowaną procedurę, jako regułę ze skryptem.
Powyższą procedurę możemy rozszerzyć np. o nadanie koloru wiadomości, przesłać na inne konto lub przesunąć wprost do folderu „Elementy usunięte”. Możemy też poddać sprawdzenia wiadomości przychodzącej z inną książką adresową, lub z kilkoma.

(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.

:, , , , , , , , ,

Leave a Reply

Recently Active Members

Profile picture of vbatools
Profile picture of Joanna Subik
Profile picture of Karol Stilger
Profile picture of Anorak
Profile picture of marcinmachalowski
Profile picture of programistaaccess
Profile picture of piotrpawlik
Profile picture of Emil Wasilewski
Profile picture of kicekpicek
Profile picture of coldfusion
Profile picture of Gosia Borzęcka
Profile picture of lukaszch
Profile picture of itadministracja
Profile picture of farbenia
Profile picture of Łukasz Kałużny
Profile picture of kabzinski
Profile picture of rtynski
Profile picture of leszekbetlinski
Profile picture of Iv
Profile picture of Justyna Spychała