Uno snippet più che un articolo vero e proprio, scritto perché potrebbe tornarti utile avere sotto mano i passaggi da fare nel caso in cui ti venga richiesto di deviare la corrispondenza di un indirizzo di posta elettronica verso un altro, interno o esterno all’organizzazione, poco importa, l’importante è l’obbiettivo da raggiungere rispetto alla richiesta iniziale.
Neanche a dirlo, do per scontato che tu ti sia già connesso al tuo Exchange in cloud tramite PowerShell (altrimenti puoi dare un’occhiata qui), salto quindi alla ciccia, comandi per abilitare il redirect o il forward delle comunicazioni in ingresso verso una casella di posta elettronica gestita dal tuo attuale tenant, utile per un’eventuale migrazione verso diverso tenant (una scissione?) e non solo.
Tutti i consigli e le stringhe qui di seguito hanno effetto su caselle di posta personali tanto quanto Shared Mailbox.
Redirect verso una diversa casella della stessa organizzazione
Set-Mailbox mario@contoso.com -ForwardingAddress mario2@contoso.com -DeliverToMailboxAndForward $False
Cosa ti serve sapere?
mario@contoso.com
è l’indirizzo sorgente.mario2@contoso.com
è l’indirizzo di destinazione, ho mantenuto contoso.com ma è improbabile che tu voglia fare questo tipo di redirect, piuttosto lo aggiungeresti come ulteriore alias della casella di posta originale.-DeliverToMailboxAndForward $False
determina il passaggio pulito delle mail, senza creare copia delle stesse nella casella sorgente, in pratica hai appena creato un alias. Impostando invece l’opzione a$True
, conserverai una copia della mail in ingresso nel database di posta, quindi ne invierai copia alla destinazione, in maniera del tutto trasparente.
Redirect verso una casella esterna all’organizzazione
Set-Mailbox mario@contoso.com -ForwardingSmtpAddress mario@gmail.com -DeliverToMailboxAndForward $False
Cosa ti serve sapere? In realtà nulla di più rispetto a prima, fermo restando che cambia il parametro (ForwardingSmtpAddress
), ma non la posizione della sorgente o della destinazione. Resta identico anche lo scopo del DeliverToMailboxAndForward
.
Verifica della modifica
Nulla di più semplice. Ti basterà infatti richiamare le informazioni della Mailbox interessata ed estrapolarne a video esclusivamente i parametri utili, quelli relativi all’indirizzo verso il quale hai attivato il forward (o redirect), se hai scelto di girare in maniera trasparente la corrispondenza o tenerne copia, l’eventuale indirizzo esterno all’organizzazione. Tradotto (seppur non mantenendo la posizione riportata nel descritto):
Get-Mailbox mario@contoso.com | ft DeliverToMailboxAndForward, ForwardingAddress, ForwardingSmtpAddress
In realtà potresti anche cercare altre caselle che hanno ricevuto lo stesso trattamento in passato, sullo stesso server Exchange, semplicemente modificando la query in:
Get-Mailbox -ResultSize Unlimited | Where {$_.ForwardingSmtpAddress -ne $Null} | Select Name,ForwardingAddress,ForwardingSmtpAddress, DeliverToMailboxAndForward
(dove togliere ForwardingAddress
nel caso in cui le caselle modificate abbiano impostato il solo campo ForwardingSmtpAddress
, per una mera questione estetica del risultato a video, nda).
Annullare la modifica
Nulla si annulla realmente, si modifica semmai. Per questo motivo ti basterà rilanciare il comando che hai precedentemente già lanciato, semplicemente variando in $null la destinazione. Per capirci:
Set-Mailbox mario@contoso.com -ForwardingAddress $Null
oppure (se il redirect non è stato fatto verso caselle appartenenti alla stessa organizzazione):
Set-Mailbox mario@contoso.com -ForwardingSmtpAddress $Null
Inutile dire che per questo specifico caso, il parametro DeliverToMailboxAndForward
è perfettamente inutile, quindi non è necessario specificarlo a riga di comando.
Come operare su più caselle?
Anche questo è molto semplice, basta ricorrere a un file CSV, come nella maggior parte dei casi. Io ne ho creato uno con due sole colonne. Nella prima ho inserito l’indirizzo sorgente, nella seconda la relativa corrispondenza verso l’esterno. A quel punto mi è bastata una riga unica per importare il CSV e lanciare un’operazione per ogni sua riga:
Import-Csv C:\temp\utenti.csv | foreach { Set-Mailbox $_.Sorgente -ForwardingSmtpAddress $_.DestinazioneRedirect -DeliverToMailboxAndForward $True }
Cosa ti serve sapere?
C:\temp\utenti.csv
è il file che ho utilizzato, ovviamente tu potresti averne uno con nome e posizione differenti, basta dare in pasto alla PowerShell il giusto puntamento.- La colonna 1 del mio file aveva titolo “Sorgente“, la colonna 2 “DestinazioneRedirect“. Se cambi nome alle colonne, cambialo anche nella stringa di PowerShell.
- La richiesta è stata quella di mantenere una copia della mail nella casella di posta sorgente, ho quindi dovuto utilizzare il parametro
-DeliverToMailboxAndForward $True
Il file CSV, giusto per non farti fare errori, era così composto:
Dubbi?
L’area commenti è sempre a tua totale disposizione :-)
Buon lavoro!
L'articolo potrebbe non essere aggiornato
Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)