Pokud používáte Windows Live Hotmail, vězte, že poštu z něj si můžete pomocí doplňku Outlook Connector synchronizovat i do vašeho Microsoft Office Outlook 2003 / 2007. Vše funguje velmi rychle a spolehlivě, jedná se navíc o synchronizaci, takže pokud si v Outlooku neco změníte nebo přidáte, při dalším odeslání / přijmutí to vidíte hned i na webu.
Jediný problém mi nastal s pravidly a filtry. Odebírám poměrně hodně konferencí, dále mi chodí mnoho zpráv odsud z VbNetu a ze školy, takže je celkem logické, že poštu třídím do složek. Outlook má velmi kvalitní podporu pro filtry, obsahuje spousty mnohdy i složitých kritérií, která se mohou využívat. Problém je ovšem v tom, že na úložiště synchronizované přes Outlook Connector se mi pravidla prostě nedaří zprovoznit. Pokud jsem toto úložiště nastavil jako výchozí, vše šlo jako po másle, ale tento typ úložiště má omezenou funkcionalitu v kalendáři, což mě štvalo (neumí třeba úkoly s opakováním). Proto mám jedno standardní úložiště jako výchozí (.pst), kam přijímám ostatní účty přes POP3, a pak úložiště Outlook Connectoru, na kterém pravidla potřebuji spouštět, ale nejde to.
Co se mi na Outlooku ale velice líbí je podpora pro makra. VBA je mnohými zatracováno a proklínáno, faktem ale je, že téměř jakoukoliv funkcionalitu (která neodporuje přímo základním konceptům aplikace) si můžete dopsat sami. Stačí si tedy vytvořit makro FilterMail, do kterého umístíme tento kód:
Sub FilterMail()
'konstanty
Const StoreName = "herceg" & "@" & "vbnet.cz"
Const FolderName = "Inbox"
'získat pravidla
Dim r As Rules
Set r = ThisOutlookSession.Session.DefaultStore.GetRules()
'najít správné úložiště
Dim s As Store
Set s = Nothing
With ThisOutlookSession.Session.Stores
For i = 1 To .count
If .Item(i).DisplayName = StoreName Then Set s = .Item(i) : Exit For
Next
End With
If s Is Nothing Then Exit Sub
'najít složku Inbox
Dim f As Folder
Set f = Nothing
With s.GetRootFolder().Folders()
For i = 1 To .count
If .Item(i).Name = FolderName Then Set f = .Item(i) : Exit For
Next
End With
If f Is Nothing Then Exit Sub
'spustit pravidla na složce Inbox
For i = 1 To r.count
r.Item(i).Execute True, f, False
Next
End Sub
Nahoře mám nastaveny jako konstanty jméno úložiště a jméno složky, do které e-maily přicházejí. Toto makro projde všechna pravidla definovaná na výchozím úložišti a spustí je. Pak již jen zbývá přidat si do panelu nástrojů tlačítko, které spustí toto makro, a máte vystaráno. Po přijetí zpráv je roztřídíte jedním kliknutím.
Pokud náhodou víte, jak to zaonačit tak, aby se maily z Outlook Connectoru třídily samy, napište mi, prosím, do diskuse. Na několika diskusích jsem četl, že to automatickya bez makra nejde, ale to ještě neznamená, že to je pravda.