Aggiungere un dominio SMTP Authoritative in Exchange Server 2007

Published 20 April 07 03:55 PM | claudiog 

Recentemente ho scritto per un cliente una script in PowerShell / EMS, per aggiungere un dominio di posta Autoritative ad una organizzazione Exchange Server 2007.

Di per sè saremmo in presenza di una sola CmdLet, ma se vogliamo fare le cose un pò meglio (migliorare si può e si deve  ... sempre !) dobbiamo anche rispettare gli standard e  la netiquette.
Un dominio SMTP gestito correttamente, deve infatti avere sempre un account Postmaster@... ed Abuse@..., pena l'inclusione in Black/Gray lists. E' questa un'area poco gestita da parte delle aziende ed purtroppo anche dagli ISP, ma credo che saremo costretti tutti a usare gli standard RFC meglio, per ridurre il disordine-mondiale che governa  ormai l'email.

Il codice commentato è  quì sotto, ma è disponibile anche il download di Add-ManagedDomain.ps1

param(
  [string] $Dom=$(Throw "Please specify a domain name. (E.g. 'test.local')")
)

Il file di script, ha bisogno obbligatoriamente di un parametro, di tipo String, che se mancante genera una eccezione (Throw).

# Defines constant
set-variable mbx 'Res-Postmaster' -option constant

# Gets the Postmaster/Abuse associated Mailbox
$local:oMbx = get-Mailbox $mbx -ea SilentlyContinue

Le righe soprastanti servono a dimostrare l'uso di una Costante in WPS e a recuperare la Mailbox che avrà associati gli alias Postmaster/Abuse, senza curarsi di eventuali errori, che verranno nascosti. La verifica dell'effettiva esistenza della Mailbox è controllata da



if ($oMbx -eq $Null) {
  write-warning "`n$mbx: mailbox not found. Cannot continue!"
}

Bene, abbiamo tutto, quindi possiamo procedere a creare il Domain e gli Alias!
Da notare come l'aggiunta di EmailAddresses venga fatta con l'operatore '+=' senza necessità di conversioni di tipo espilcite, gestite internamente da ETS di PowerShell e come sia necessario salvare le modifice in AD con la CmdLet Set-Mailbox.

else {
  # Adds the domain
  write-host 'Adding authoritative domain ', $Dom
  New-AcceptedDomain -Name $Dom -DomainName $Dom -domaintype Authoritative

  # Adds Abuse/Postmaster aliases to predefined  mbx
  write-host "`nSetting $mbx mailbox aliases for $Dom"

  $oMbx.EmailAddresses += 'Abuse@' + $Dom;
  $oMbx.EmailAddresses += 'Postmaster@' + $Dom;

  $oMbx | set-Mailbox

  "`nDone !"
}


That's all folks!

Ciao,
Claudio

Filed under: ,
Anonymous comments are disabled

About claudiog

MCSA, MCSE, MCT su NT/2000/2003 MCTS: Windows Server 2008 Active Directory/Application Platform/Network Infrastructure