Správa pravidel pro sdílenou schránku
Pokud mimo vlastní schránky využíváme také nějakou sdílenou (máme na ni přiřazena plná práva), tak ji vidíme v Outlooku. Nicméně při nastavování Pravidel a oznámení (Rules & Alerts) v Outlooku lze pracovat pouze s pravidly pro naši vlastní schránku.
Pozn.: Jediné řešení by bylo přidat schránku do Outlooku jako další účet (do kterého se musíme přihlásit). Pak můžeme při nastavení pravidel přepínat účty.
Jednodušší způsob správy pravidel pro sdílenou schránku je přes Outlook on the Web (OWA).
- v pravém horním rohu klikneme na svůj účet a zvolíme Open another mailbox

- zadáme název schránky, Search directory a Open (otevře se v novém okně)
- ve sdílené schránce klikneme vpravo nahoře na Settings (ozubené kolečko) a poté na Options
- pravidla se spravují pod Mail - Automatic processing - Inbox and sweep rules

Konfigurace pravidel pomocí PowerShellu
Jako administrátoři můžeme pravidla ve schránkách spravovat pomocí Exchange Management Shell (EMS). K dispozici máme několik cmdletů:
- New-InboxRule - vytvoření nového pravidla (Inbox Rule)
- Get-InboxRule - zobrazení existujících pravidel
- Set-InboxRule - úprava existujícího pravidla
- Remove-InboxRule - odstranění pravidla
- Enable-InboxRule - aktivace pravidla
- Disable-InboxRule - deaktivace pravidla
Omezení množství pravidel ve schránce
Exchange neomezuje množství pravidel, která můžeme ve schránce vytvořit. Ale celková velikost pravidel ve schránce může být maximálně 256 kB. Bohužel se nedozvíme, kolik aktuálně pravidla zabírají. Pokud se při vytváření pravidla zobrazí chyba, že nelze uložit pravidlo na Exchange, tak je možná vyčerpána kapacita.
Schránky vytvořené na novějších verzích Exchange mají nastavenu velikost pro pravidla 256 kB. Ale dříve byla hodnota 64 kB. Hodnotu kvóty pro schránku si můžeme ověřit a případně upravit.
[PS] C:\> Get-Mailbox bouska | FT Alias, RulesQuota Alias RulesQuota ----- ---------- bouska 256 KB (262,144 bytes)
Vytvoření pravidla
Pravidla se vytváří jednoduše pomocí parametrů, které definují podmínky, akce a vyjímky. Můžeme je různě kombinovat.
Níže je příklad pravidla, které přepošle email, který obsahují určitě slovo v adrese příjemce. Pravidlo musíme pojmenovat a určit schránku, ke které patří. V některých případech je potřeba přesněji specifikovat adresy (než v příkladu) a řetězce uzavřít do uvozovek.
New-InboxRule -Name ForwardMail -Mailbox test-mailbox -RecipientAddressContainsWords petr -ForwardTo bouska ` -StopProcessingRules $true
Informace o existujících pravidlech
Seznam pravidel pro schránku.
Get-InboxRule -Mailbox test-mailbox
Detailní informace o konkrétním pravidle.
Get-InboxRule -Mailbox test-mailbox -Identity ForwardMail | FL *
Smazání všech pravidel pro schránku
Get-InboxRule -Mailbox test-mailbox | Remove-InboxRule
Praktický příklad - schránka s mnoha adresami a pravidla pro přeposílání
Dostal jsem následující zadání. Zajistit, aby emaily odeslané na více než 200 speciálních adres dorazily do jedné společné schránky, kterou může zpracovávat více uživatelů. Zároveň bylo potřeba některé zprávy automaticky přeposílat podle adresy příjemce.
Využití aliasů vs. distribučních skupin
Společnou schránku pro sběr emailů je ideální vytvořit jako sdílenou schránku (Shared Mailbox). K této schránce můžeme přidat aliasy pro jednotlivé adresy. Můžeme využít PowerShell cmdlet (adresy třeba načítat z CSV souboru).
Set-Mailbox test-mailbox@firma.cz -EmailAddresses @{Add=$alias}
Problém s aliasy
Objevil se zásadní problém. V Outlooku se nezobrazuje konkrétní alias, na který byl email odeslán. Viditelný je pouze název sdílené schránky. Pokud chceme zjistit cílovou adresu, musíme se podívat do hlavičky zprávy.
Řešení pomocí distribučních skupin
Možné řešení je vytvořit pro každou emailovou adresu samostatnou distribuční skupinu (Distribution Group), do které přidáme sdílenou schránku jako člena. Zprávy tak budou doručeny do sdílené schránky a zároveň bude viditelné, na jakou adresu byly odeslány.
Příklad hromadného vytvoření distribučních skupin z CSV souboru:
$addresses=import-csv c:\addresses.csv
foreach($alias in $addresses) {
$alias=$($alias.alias)
$alias=$alias.Substring(0, $alias.IndexOf("@"))
New-DistributionGroup -Name $alias -Alias $alias -Members test-mailbox@firma.cz -OrganizationalUnit "OU=Test,DC=firma,DC=cz" `
-MemberJoinRestriction Closed -MemberDepartRestriction Closed -RequireSenderAuthenticationEnabled $false
Set-DistributionGroup -Identity $alias -HiddenFromAddressListsEnabled $true
}
Přeposílací pravidlo - filtrování podle adresy příjemce
Druhá část zadání spočívala v automatickém přeposílání zpráv na základě adresy příjemce. Musíme zvážit limit 256 kB pro pravidla ve schránce. Potřebujeme vytvořit více než 200 pravidel. Patrně je vhodné použít úsporný zápis, aby bylo každé pravidlo co nejmenší. Například krátký název pravidla nebo vyhledávaný řetězec.
Pro filtrování zpráv můžeme využít podmínku RecipientAddressContainsWords - with specific words in the recipient’s addresses. Pravidlo se aplikuje na zprávy se zadaným slovem v adrese příjemce. V praxi pravidlo na sdílené schránce korektně funguje pro adresy distribučních skupin.
Pozn.: Můžeme použít celou emailovou adresu nebo jen její část jako hledaný řetězec. Důležité ale je, aby šlo o jednoznačný řetězec, který se nepřekrývá s jinými adresami.
New-InboxRule -Name ForwardPetr -Mailbox test-mailbox -RecipientAddressContainsWords "petr@" -ForwardTo bouska -StopProcessingRules $true
Problém s řetězcem delším než 9 znaků
Při testování se objevil nečekaný problém, ke kterému jsem na internetu nenalezl žádné informace. Pokud byl řetězec v parametru RecipientAddressContainsWords delší než devět znaků, tak se pravidlo neuplatnilo (ignorovalo).
Přeposílací pravidlo - filtrování podle hlavičky zprávy
Jako funkční řešení se ukázalo použít jinou podmínku, filtrování podle hlavičky zprávy. Podmínka HeaderContainsWords - with specific words in the message header. Pravidlo se aplikuje na zprávy s konkrétním slovem v hlavičce emailu.
New-InboxRule -Name ForwardPetr -Mailbox test-mailbox -HeaderContainsWords "<petr@" -ForwardTo bouska -StopProcessingRules $true
Pozn.: V mém případě jsem měl adresy připravené v Excelu. Bylo jednoduché vygenerovat jednotlivé příkazy přímo tam. Stejně by se dalo načítat CSV.
Zatím zde nejsou žádné komentáře.