E-netsend

Soyez le premier à donner votre avis sur cette source.

Snippet vu 21 858 fois - Téléchargée 56 fois

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

Ajouter un commentaire

Commentaires

J'avais oublié ... Il est plus simpas de l'apeller de cette façon : [# Envoyer un message]
sremy
Messages postés
4
Date d'inscription
samedi 1 février 2003
Statut
Membre
Dernière intervention
6 avril 2003
-
salut, je comprend pas, ca amrche pas chez moi :o(

-------------


Erreur de compilation Microsoft VBScript error '800a0401'

Fin d'instruction attendue

/iisHelp/common/500-100.asp, line 11

Dim objASPError, blnErrorWritten, strServername, strServerIP, strRemoteIP Dim strMethod, lngPos, datNow, strQueryString, strURL
--------------------------------------------------------------------------^
Erreur d'exécution Microsoft VBScript error '800a0009'

Indice en dehors de la plage: '[number: 1]'

/netsend.asp, line 19
ratala
Messages postés
248
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
22 juin 2008
-
hmm... du vb qui commence <% et qui fini par %> c'est bizarre...

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.