begin process at 2010 03 21 15:16:06
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Composants

 > COMPOSANT ASPMAIL PILOTÉ VIA SQL SERVER

COMPOSANT ASPMAIL PILOTÉ VIA SQL SERVER


 Information sur la source

Note :
5,5 / 10 - par 2 personnes
5,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Composants Niveau :Expert Date de création :05/08/2002 Date de mise à jour :05/08/2002 14:56:28 Vu :9 945

Auteur : Skyride

Ecrire un message privé
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

ASPMAIL est un composant permettant l'envoi de mails...

Il peut être piloté via une page ASP ou peut être de même manipulé via les procédures stockées.

Afin de pouvoir manipuler le composant ASPMAIL, il faut utiliser les procédures stockées OLE Automation afin de créer et utiliser l'objet Mailer.

Voici les marches à suivre ainsi que les commandes à utiliser :
1. CREATION D'UNE INSTANCE DE L'OBJET OLE SMTPsvg.Mailer : sp_OACreate
2. AFFECTATION DES VALEURS AUX PROPRIETES DE L'OBJET SMTPsvg.Mailer :
sp_OASetProperty
3. APPEL A DIFFERENTES METHODES POUR L'ENVOI DE MAIL : sp_OAMethod
4. GESTION DES ERREURS S'IL Y EN A EU : sp_OAGetErrorInfo
5. DESTRUCTION DE L'OBET OLE : sp_OADestroy

Dans mon exemple, je prends en considération une table NEWSLETTER avec en clé unique le champs EMAIL qui contient l'adresse email de chaque utilisateur...
Il s'agira de parcourir toutes les occurences de la table et envoyer un mail à chaque utilisateur...
  

Source

  • CREATE PROCEDURE PO_ENVOI_NEWSLETTER
  • AS
  • /* Variable qui contiendra l'email de chaque utilisateur dans chaque ligne du curseur */
  • DECLARE @EMAIL as varchar(255)
  • BEGIN
  • /* Les variables concernant le traitement du mail */
  • @pObj int,
  • @AspMail int,
  • @property int,
  • /* On déclare un curseur afin de récupérer toutes les adresses email */
  • DECLARE CURSMAIL CURSOR GLOBAL FOR SELECT * FROM NEWSLETTER
  • /* On ouvre le curseur */
  • OPEN CURSMAIL
  • /* On récupère une ligne spécifique du curseur */
  • FETCH NEXT FROM CURSMAIL INTO @EMAIL
  • /* Tant que la dernière instruction FETCH sur le curseur a reussie */
  • WHILE(@@FETCH_STATUS = 0)
  • BEGIN
  • /* Envoi du mail */
  • exec @AspMail=sp_OACreate "SMTPsvg.Mailer", @pObj OUT
  • exec @AspMail=sp_OASetProperty @pObj, "RemoteHost","adresse de l'host"
  • exec @AspMail=sp_OASetProperty @pObj, "FromName","Nom de l'emetteur"
  • exec @AspMail=sp_OASetProperty @pObj, "FromAddress","Email de l'emetteur"
  • exec @AspMail=sp_OASetProperty @pObj, "SubJect", "Commande de mails via SQL-SERVER"
  • exec @AspMail=sp_OASetProperty @pObj, "ContentType","text/html"
  • exec @AspMail=sp_OASetProperty @pObj, "BodyText","Corps de votre message"
  • exec @AspMail=sp_OAMethod @pObj, "AddRecipient", @property OUT, @EMAIL, @EMAIL
  • exec @AspMail=sp_OAMethod @pObj, "SendMail", @property OUT
  • FETCH NEXT FROM CURSMAIL INTO @EMAIL
  • END
  • CLOSE CURSMAIL
  • DEALLOCATE CURSMAIL
  • END
  • ************************
  • Côté ASP :
  • ************************
  • Set Conn = Server.CreateObject("ADODB.Connection")
  • Conn.Open "Nom de votre DSN"
  • str = "EXEC PO_ENVOI_NEWSLETTER"
  • set rst = Conn.Execute(str)
CREATE PROCEDURE PO_ENVOI_NEWSLETTER
	AS
    	/* Variable qui contiendra l'email de chaque utilisateur dans chaque ligne du curseur */
         DECLARE @EMAIL as varchar(255)

	BEGIN
		/* Les variables concernant le traitement du mail */
		@pObj		int,
		@AspMail	int,
		@property 	int,

		/* On déclare un curseur afin de récupérer toutes les adresses email */
		DECLARE CURSMAIL CURSOR GLOBAL FOR SELECT * FROM NEWSLETTER

		/* On ouvre le curseur */
		OPEN CURSMAIL
	
		/* On récupère une ligne spécifique du curseur */
		FETCH NEXT FROM CURSMAIL INTO @EMAIL

		/* Tant que la dernière instruction FETCH  sur le curseur a reussie */
		WHILE(@@FETCH_STATUS = 0)
			BEGIN
				/* Envoi du mail */
	            exec @AspMail=sp_OACreate "SMTPsvg.Mailer", @pObj OUT
	            exec @AspMail=sp_OASetProperty @pObj, "RemoteHost","adresse de l'host"
	            exec @AspMail=sp_OASetProperty @pObj, "FromName","Nom de  l'emetteur"
	            exec @AspMail=sp_OASetProperty @pObj, "FromAddress","Email de l'emetteur"
	            exec @AspMail=sp_OASetProperty @pObj, "SubJect", "Commande de mails via SQL-SERVER"
	            exec @AspMail=sp_OASetProperty @pObj, "ContentType","text/html"
	            exec @AspMail=sp_OASetProperty @pObj, "BodyText","Corps de votre message"
	            exec @AspMail=sp_OAMethod @pObj, "AddRecipient", @property OUT, @EMAIL, @EMAIL
	            exec @AspMail=sp_OAMethod @pObj, "SendMail", @property OUT
		FETCH NEXT FROM CURSMAIL INTO @EMAIL
	END
              CLOSE CURSMAIL
              DEALLOCATE CURSMAIL
END


************************
Côté ASP :
************************

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Nom de votre DSN"
	
str = "EXEC PO_ENVOI_NEWSLETTER"
set rst = Conn.Execute(str)   

 Conclusion

En espérant vous aider, dans tous les cas bon courage et bonne programmation...  


 Sources du même auteur

Source .NET (Dotnet) LISTER LES DOSSIERS D'UN RÉPERTOIRE
Source .NET (Dotnet) LISTER LES FICHIERS D'UN RÉPERTOIRE
Source .NET (Dotnet) INFORMATIONS D'UN FICHIER
Source avec Zip Source .NET (Dotnet) GÉNÉRER UN DOCUMENT HTML À PARTIR DE DONNÉES CONTENUES DANS ...
Source avec Zip Source .NET (Dotnet) GESTION DES TRANSACTIONS

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) CUSTOM USER CONTROL COLLECTION par ranouf
Source avec Zip Source .NET (Dotnet) COMPACTER DU JAVASCRIPT par jesusonline
Source avec Zip Source avec une capture Source .NET (Dotnet) WEBCONTROL WYSIWYG POUR ASP.NET par Yxion
Source avec Zip Source avec une capture ANTIBOT par ghuysmans99
INCLURE UNE LIBRAIRIE par Warwick

Commentaires et avis

Commentaire de Frank339 le 13/03/2005 18:49:54

personnellement, j'aurai pensé voir un zip, ca aurait été mieux pour la lecture à ceux qui ont des problèmes à l'insertion de ta source...

meilleures salutations.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales