Comment utiliser plusieurs smart host avec un relais SMTP IIS

"configurer un relais smtp avec iis"

 

IIS en tant que relais smtp

L’utilisation d’un serveur IIS pour ce type de relais présente de nombreux avantages. Cependant, une des restrictions principales pour les entreprises est que l’interface graphique du service SMTP de IIS ne permet de définir qu'un seul smarthost en serveur distant. Bien sur il est tout à fait possible d’utiliser les mécanismes habituels basés sur les MX ou le Round Robin DNS. De même il est envisageable de mettre en œuvre sur les serveurs cibles du NLB (Network Load Balancing). Ces différentes solutions peuvent être délicate à implémenter dans des environnements d’entreprises complexes car cela oblige l’intervention de différentes équipes.

Smtp Exchange et IIS

Le service SMTP d’Exchange Serveur repose sur celui de IIS. Exchange Serveur venant y ajouter des fonctionnalités avancées à l’aide des connecteurs SMTP. Aussi nous allons à travers un script de configuration, ajouter plusieurs serveurs SMTP en smarthost afin de fournir une tolérance de panne et une répartition de charge uniquement en modifiant la configuration du serveur SMTP utilisé comme relais de messagerie pour les applications de l’entreprise.

Gestion du SMTP IIS avec WMI

WMI (Windows Management Interface) permet d’accéder à la configuration de SMTP de IIS et d’y apporter des modificaitons. Le script VBS ci dessous permet de définir 3 smarthosts pour notre service SMTP présent dans IIS. les 3 serveurs smarthosts sont 192.168.1.90 et 192.168.1.100 (Mettre les valeurs des adresses IP entre [] ou indiquer juste le fqdn de la machine cible) et hubexchange.domaine.local. Il faut séparer les serveurs par “;”. Il suffit de modifier dans le code ci-dessous les valeurs en rouge par vos propres informations et d’exécuter ce script vbs sur votre serveur IIS.

Script vbs pour modifier le SMTP de IIS

Vous pouvez utiliser ce script d'exemple VBS pour modifier le relais SMTP dans IIS.

Modifsmtp.vbs

*strComputer = "."
Set objWMIService = GetObject ("winmgmts:{authenticationLevel=pktPrivacy}" & strComputer & "rootmicrosoftiisv2") *

*Set colItems = objWMIService.ExecQuery ("Select * from IIsSmtpServiceSetting") *

*For Each objItem in colItems
objItem.SmartHost = "[192.168.1.90];[192.168.1.100];hubexchange.domaine.local"
objItem.Put_
Next *

msgbox "fin"

Une fois ce script appliqué le service SMTP utilisera les différents serveurs SMTP renseignés. Vous obtiendrez ainsi de la répartition de charge et de la tolérance de panne.

Vous pouvez utiliser le script ci-dessous pour interroger les serveurs smartshosts utilisés par votre serveur virtuel SMTP.

Verifsmtp.vbs

*strComputer = "."
Set objWMIService = GetObject ("winmgmts:{authenticationLevel=pktPrivacy}" & strComputer & "rootmicrosoftiisv2") *

*Set colItems = objWMIService.ExecQuery ("Select * from IIsSmtpServiceSetting") *

*For Each objItem in colItems
msgbox (objItem.SmartHost)
Next *

msgbox "fin"

Il est à noter que cette configuration par script n’est pas documentée par Microsoft, il convient donc de valider ce type de configuration dans votre environnement et de mettre œuvre une supervision performante sur votre serveur en utilisant par exemple Operation Manager de Microsoft.