Précédent   Forum des professionnels en informatique > Systèmes > Windows > Windows Serveur > Exchange Server
Exchange Server Forum d'entraide Microsoft Exchange Server : logiciel collaboratif pour serveur de messagerie électronique
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 11/03/2010, 10h55   #1
Invité de passage
 
Inscription : août 2009
Messages : 8
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : août 2009
Messages : 8
Points : 1
Points : 1
Par défaut Event Sink Script et AD

Bonjour,

En me basant sur ce document : http://www.alexielle.ovh.org/Ajouter...entreprise.pdf

J'ai crée un script qui est censé ajouter a chaque mail sortant un disclamer. Dans ce disclamer j'ai enfaite créé une connexion LDAP où je récupère des informations dans l'active directory et que je rajoute dans le disclamer comme par exemple le nom de l'utilisateur. Cela a pour objectif de faire une signature automatique a chaque message sortant du serveur exchange (2000).

Voici mon script :

Citation:
<SCRIPT LANGUAGE="VBScript">
Sub ISMTPOnArrival_OnArrival(ByVal Msg, EventStatus)


'################################
'# #
'# Recherche du LDAP actuel #
'# #
'################################

Set oRootDSE = GetObject("LDAP://RootDSE") ' Definition du chemin racine de la base AD
Set oShell = WScript.CreateObject("WScript.Shell") ' Creer un access au Shell Windows
sUserName = oShell.Environment("PROCESS").Item("username")
Const ADS_PROPERTY_CLEAR = 1 ' Constantes
Const ADS_NAME_INITTYPE_GC = 3
Const ADS_NAME_TYPE_NT4 = 3
Const ADS_NAME_TYPE_1779 = 1
strDNSDomain = oRootDSE.Get("defaultNamingContext") ' On recupere le Nom du compte
Set objTrans = CreateObject("NameTranslate")
objTrans.Init ADS_NAME_INITTYPE_GC, ""
objTrans.Set ADS_NAME_TYPE_1779, strDNSDomain
strNetBIOSDomain = objTrans.Get(ADS_NAME_TYPE_NT4)
strNetBIOSDomain = Left(strNetBIOSDomain, Len(strNetBIOSDomain) - 1)
strUserNTName = Trim(LogonAccount)
objTrans.Set ADS_NAME_TYPE_NT4, strNetBIOSDomain & "\" & strUserNTName

' Gestion des erreures de connexion a l'AD avec les identifiants trouvé
If Err.Number <> 0 Then
On Error GoTo 0
Wscript.Echo "ERROR: Login not found in Active Directory: " & strUserNTName
Else
On Error GoTo 0
strUserDN = objTrans.Get(ADS_NAME_TYPE_1779)
LDAP_Name = "LDAP://" & strUserDN
End If


'############################################################################
'# #
'# Recherche de l'utilisateur actuellement connecter a l'AD via ce poste #
'# #
'############################################################################

On error resume next
Set objConnection = CreateObject("ADODB.Connection") ' Creation d'un objet de connexion ADO
objConnection.Open "Provider=ADsDSOObject;" ' Ouverture d'un connexion avec l'AD
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection 'Objet commande pour creer une requete
objCommand.CommandText = "SELECT adspath FROM '" & LDAP_Name & "' WHERE objectCategory='user' AND sAMAccountName='" & sUserName & "'"
Set objRecordSet = objCommand.Execute
if (objRecordset.Fields("adspath") <> "") then
GetAdsPath = objRecordset.Fields("adspath")
end if
objConnection.Close
LDAP_Path_User = GetAdsPath


'################################
'# #
'# Création de la signature #
'# #
'################################

' Ecriture de la version texte du Disclaimer
TextDisclaimer = vbCrLf & "DISCLAIMER:" & vbCrLf & "GROUPE AZ"

' Ecriture de la version HTML du Disclaimer
' On concatene la variable HTMLDisclaimer pour en faire une signature complete en HTML
HTMLDisclaimer = "<TABLE id=table1 style= BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px height=194 width=500 border=1>"
HTMLDisclaimer = HTMLDisclaimer & "<TR><TD>"
HTMLDisclaimer = HTMLDisclaimer & "<FONT face=Arial size=2><b>" & oUser.company & "</b></FONT><BR>"
HTMLDisclaimer = HTMLDisclaimer & "<FONT face=Arial size=2><b>" & oUser.displayname & "</b></FONT><BR>"
If Not IsEmpty(oUser.title) Then
HTMLDisclaimer = HTMLDisclaimer & "<FONT face=Arial size=2>" & oUser.title & "</FONT><BR>"
Else
HTMLDisclaimer = HTMLDisclaimer & "<FONT face=Arial size=2> Service " & oUser.department & "</FONT><BR>"
End If
HTMLDisclaimer = HTMLDisclaimer & "<FONT face=Arial size=2>Tél : " & oUser.telephoneNumber & "</FONT><BR>"
If Not IsEmpty(oUser.mobile) Then
HTMLDisclaimer = HTMLDisclaimer & "<FONT face=Arial size=2>Mobile : " & oUser.mobile & "</FONT><BR>"
End if
HTMLDisclaimer = HTMLDisclaimer & "<FONT face=Arial size=2>Fax : " & oUser.facsimileTelephoneNumber & "</FONT><BR>"
HTMLDisclaimer = HTMLDisclaimer & "</TR></TD></TABLE>"

'################################
'# #
'# Retour au programme smtp #
'# #
'################################

If Msg.HTMLBody <> "" Then
'Recherchez la balise "</body>" et insérez notre exclusion de responsabilité devant cette balise.
pos = InStr(1, Msg.HTMLBody, "</body>", vbTextCompare)
szPartI = Left(Msg.HTMLBody, pos - 1)
szPartII = Right(Msg.HTMLBody, Len(Msg.HTMLBody) - (pos - 1))
Msg.HTMLBody = szPartI + HTMLDisclaimer + szPartII

Msg.TextBody = Msg.TextBody & vbCrLf & TextDisclaimer & vbCrLf
Else
Msg.TextBody = Msg.TextBody & vbCrLf & TextDisclaimer & vbCrLf
End If

'Validez les modifications apportées au contenu dans l'objet de transport ADO Stream.
Msg.DataSource.Save ' Validez les modifications dans le transport Stream

pEventStatus = cdoRunNextSink
End Sub
</SCRIPT>
Ma question est que j'aimerais savoir enfaite si ce script dans ce mode de fonctionnement peu réussir ? je veut dire par là est ce que une connexion LDAP lors de l'exécution de ce script peut être possible? car après quelque test lors ce que j'exécute le script je n'arrive plus à envoyer de mail.

Pour ce qui est des tests ce n'est pas moi qui les ais effectués car je n'ai pas encore virtualisé de serveur.

Si quelqu'un peu m'aiguiller sur cela ? voir m'aider a améliorer mon script .

Merci beaucoup
alexielle51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2010, 16h04   #2
Invité de passage
 
Inscription : août 2009
Messages : 8
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : août 2009
Messages : 8
Points : 1
Points : 1
Je me permet de faire remonter le sujet au cas ou quelqu'un aurait une solution
alexielle51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 00h57.


 
 
 
 
Partenaires

Hébergement Web