E-netsend

Contenu du snippet

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)

%>

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.