Ce script permet d'envoyer des messages systèmes windows depuis votre Intranet, de façon très simple. Nécessite un composant ASP gratuit.
Source / Exemple :
<%
' Ce script nécessite un composant gratuit d'éxecution de commandes DOS nommé ASPExec
' que vous pourrez trouver à l'adresse http://www.serverobjects.com/products.htm#free.
' Vous devrez copier la DLL dans C:\winnt\system32 sur votre serveur Web, puis l'enregistrer
' dans la base de registre à l'aide de la commande regsvr32 C:\winnt\system32\ASPEXEC.DLL
Dim strReponse ' Déclaration des variables locales.
Dim strExpediteur '
Dim objUserList ' Déclaration des objets locaux.
Dim objExpediteur '
' Si l'autentification n'est pas activée sur votre Intranet, commentez les trois lignes
' suivantes, et affectez à la variable strExpediteur la valeur souhaitée, par exemple
' "Intranet".
strExpediteur = Split(Request.ServerVariables("AUTH_USER"), "\") ' Isolation du nom d'utilisateur.
Set objExpediteur = GetObject("WinNT://Votre_Domaine/" & strExpediteur(1)) ' Recherche de l'utilisateur dans Active Directory.
strExpediteur = objExpediteur.FullName ' Récupération du nom complet.
Set objUserList = GetObject("WinNT:") ' Ouverture de la liste des utilisateurs.
Response.Write("<HTML>" & vbCrLf)
Response.Write("<HEAD>" & vbCrLf)
Response.Write("<TITLE>Intranet de votre société</TITLE>" & vbCrLf)
Response.Write("<STYLE>" & vbCrLf)
Response.Write(".Texte {font-family:ms sans serif;font-size:8pt;}" & vbCrLf)
Response.Write("</STYLE>" & vbCrLf)
Response.Write("</HEAD>" & vbCrLf)
Response.Write("<BODY bgcolor=""#D4D0C8"">" & vbCrLf)
if Request.Form("User") = "" And Request.Form("Message") = "" then
Set objUserList = GetObject("WinNT://CORP") ' Ouverture du domaine Active Directory.
objUserList.Filter = Array("user") ' Filtrage des utilisateurs.
' L'utilisation de l'objet Request.ServerVariables("SCRIPT_NAME") dans un formulaire vous permet de nommer
' la page comme vous le souhaitez sans que cela ne l'empêche de se retrouver.
Response.Write("<FORM action=""" & Request.ServerVariables("SCRIPT_NAME") & """ method=""post"">" & vbCrLf)
Response.Write("<TABLE align=""center"">" & vbCrLf)
Response.Write(" <TR><TD colspan=""2""><P class=""Texte"">Choisissez un destinataire, et tappez votre message.</P></TD></TR>" & vbCrLf)
Response.Write(" <TR><TD colspan=""2""><HR></TD></TR>" & vbCrLf)
Response.Write(" <TR><TD><P class=""Texte""> Expéditeur :</P></TD><TD><INPUT type=""text"" name=""Expediteur"" readonly size=""26"" value=""" & strExpediteur & """></TD></TR>" & vbCrLf)
Response.Write(" <TR><TD><P class=""Texte""> Destinataire :</P></TD><TD><SELECT name=""User""><OPTION> </OPTION>" & vbCrLf)
' La liste des utilisateur est parcourue, et les noms complets ajoutés au menu déroulant des destinataires.
For Each Item In objUserList
If Item.FullName <> "" Then Response.Write("<OPTION value=""" & Item.Name & """>" & Item.FullName & "</OPTION>")
Next
Response.Write("</SELECT>" & vbCrLf)
Response.Write(" <TR><TD><P class=""Texte"">Message : </P></TD><TD><TEXTAREA name=""Message"" rows=""4""></TEXTAREA></TD></TR>" & vbCrLf)
Response.Write(" <TR><TD colspan=""2""><HR></TD></TR>" & vbCrLf)
Response.Write(" <TR><TD align=""left""><INPUT type=""reset"" value=""Effacer""></TD><TD align=""right""><INPUT type=""Submit"" value=""Envoyer""></TD></TR>" & vbCrLf)
Response.Write("</TABLE>" & vbCrLf)
Response.Write("</FORM>" & vbCrLf)
Else
Set Executor = Server.CreateObject("ASPExec.Execute") ' Ouverture du composant d'execution de commandes DOS.
Executor.Application = "net send " & Request.Form("User") & " " & strExpediteur & " : " & Request.Form("message")
strReponse = Executor.ExecuteDosApp ' Execution de la commande Net Send.
If Left(strReponse, 10) = "Le message" Then
Response.Write("<SCRIPT>alert(""Message envoyé"");</SCRIPT>" & vbCrLf & "<SCRIPT>window.close();</SCRIPT>" & vbCrLf)
Else
Response.Write("<SCRIPT>alert(""Impossible d'envoyer le message"");</SCRIPT>" & vbCrLf & "<SCRIPT>window.close();</SCRIPT>")
End If
End If
Response.Write("</BODY>" & vbCrLf)
Response.Write("</HTML>" & vbCrLf)
' Pour plus d'informations à propos des ADSI (Active Directory Services Interfaces), rendez-vous
' à l'adresse http://www.microsoft.com/FRANCE/MSDN/TechnoPoches/Info/TechSAM_ADSI.html.
' Copyleft David Mézière (dmeziere@free.fr)
%>
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.