Envoyer un mail à un groupe d'utilisateur active directory

Contenu du snippet

Ce code permet d'envoyer un mail à un groupe dans la hiérarchie Active Directory

Source / Exemple :


Private function ObtenirMail(byval login as string, byval motdepasse as string, byval groupe as string) as string
 try
   Dim LDAP_Chemin As String = "LDAP://ou=<mon OU>,dc=<mon DC>,dc=<mon DC>"
   ' Exemple  Dim LDAP_Chemin As String = "LDAP://ou=senyniumcorp,dc=senyniumcorp,dc=lan"

   ' On renseigne les informations de recherche
   Dim chemin As New DirectoryServices.DirectoryEntry
   chemin.AuthenticationType = DirectoryServices.AuthenticationTypes.Secure
   chemin.Username = login
   chemin.Password = motdepasse
   chemin.Path = LDAP_Chemin

   'Récuprération des informations Active Directory
   Dim rech As New System.DirectoryServices.DirectorySearcher(chemin)
   Dim result As System.DirectoryServices.SearchResult
   Dim mail As String = ""

   'Lister les utilisateurs
   rech.Filter = ("(objectClass=user)")
   For Each result In rech.FindAll()
     'S'assurer de l'existence du mail pour eviter
     'les comptes systemes  
      If (result.GetDirectoryEntry().Properties("mail").Value <> "") Then
         For i = 0 To result.GetDirectoryEntry().Properties("memberof").Count - 1
            tab1 = Split(result.GetDirectoryEntry().Properties("memberof").Item(i), ",")
            tab2 = Split(tab1(0), "=")
     'Vérification de l'appartenance au groupe  
            If (tab2(1) = groupe) Then
 	       mail = mail & result.GetDirectoryEntry().Properties("mail").Value
               if (i < (result.GetDirectoryEntry().Properties("memberof").Count - 1) then
                  mail = mail & ";"
               end if  
            end if
         next
      end if 
   next
   ObtenirMail = mail
  Catch ex As Exception
  End Try
end function

Private Sub EnvoiMail(byval login as string, byval motdepasse as string, byval groupe as string, ByVal De as string, ByVal sujet as string, ByVal Message as string)
   Dim m As New MailMessage
   Dim SMTP_SERV = "server"
   Try
       m.From = De
       m.Subject = sujet
       SmtpMail.SmtpServer = SMTP_SERV
     ' Au format mail  m.BodyFormat = MailFormat.Html

       Dim Adresses as string = ""
       Adresses = ObtenirMail(login, motdepasse, groupe)
       if (trim(Adresse) <> "") then
          m.Body = Message
          m.To = Adresses
          SmtpMail.Send(m)
       end if 
    Catch ex As Exception
    End Try
End Sub

'Exemple d'utilisation

EnvoiMail("monlogin", "Monmotdepasse", "GPE_Administrateurs", "MonMail", "Salut", "Juste un bonjour")

Conclusion :


Il faudra penser à inclure une référence à System.DirectoryServices, et aussi ajouter en debut de fichier " Imports System.Web.Mail ". Je n'ai pas pensé à inclure la directive imports pour le DirectoryServices, mais avec la référence, ça marche.

J'espere que ça sera utile , bonne prog

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.