Exchange: Utilizzo di una Public Folder mail enabled in una transport rule

Si consideri il seguente scenario Exchange 2007 e la necessità di dover memorizzare in un “contenitore” tutte le mail provenienti da un certo dominio (per esempio sysadmin.it).

image

Questo è il tipico scenario in cui ad esempio si vuole tenere al sicuro da cancellazioni accidentali mail particolarmente importanti come ad esempio quelle ricevute da determinati servizi a pagamento che possono essere utilizzati da alcuni utenti aziendali.

Per risolvere la problematica possiamo creare una Cartella Pubblica di tipo posta con diritti di visibilità solo per gli utenti che necessitino di controllare tale mail e abilitarla alla mail.

image image

A questo punto possiamo creare una Transport rule che invii una copia della mail alla mail della cartella pubblica creata.

Il problema è che non è possibile utilizzare una cartella pubblica abilita alla mail come destinazione in una transport rule tramite il wizard.

E’ però possibile eseguire l’operazione tramite PowerShell usando l’Exchange Management Shell, mediante i seguenti comandi eseguiti nella Exchange Management Shell o salvandoli in un file con estensione .ps1 eseguito poi tramite l’Exchange Management Shell.

$Condition1 = Get-TransportRulePredicate FromAddressContains

$Condition1.Words = @(“sysadmin.it”)

$Action1 = Get-TransportRuleAction BlindCopyTo

$Action1.Addresses = @((Get-MailPublicFolder -id “EMail Monitorate – Sysadmin.it”))

New-transportrule -name “Gestione EMail monitorate da Sysadmin.it” -condition @($Condition1) -Action @($Action1)

La transport rule così generata sarà visibile tramite l’Exchange Management Console, ma non sarà modificabile.

image

Update 01

Se si volesse invece inviare alla cartella pubblica le mail ricevute da un account nell’organizzazione, per esempio un account creato ad hoc per gestire servizi (Dropbox etc…) o l’ID Apple è possibile modificare come segue lo script PowerShell:

$Condition1 = Get-TransportRulePredicate FromAddressContains

$Condition1.addresses = @(get-mailbox nomeutente)

$Action1 = Get-TransportRuleAction BlindCopyTo

$Action1.Addresses = @((Get-MailPublicFolder -id “EMail Monitorate – Sysadmin.it”))

New-transportrule -name “Gestione EMail monitorate da Sysadmin.it” -condition @($Condition1) -Action @($Action1)