CREATE PROCEDURE [dbo].[SendMail]
(
@ Sujet comme varchar(2000),
Corps @ varchar(8000)
)
COMME
COMMENCER
/ * Définir l'adresse si nécessaire * /
Déclarer de @ varchar(1000)
la valeur de @ = ''
déclarer À @ varchar(1000)
déclarer @ CC comme varchar(1000)
/ * Définir l'adresse À * /
Définissez @ À = ''
Définissez @ CC = ''
déclarer @ MailServerName VARCHAR(100)
--Tous le Courriel définir les propriétés de serveur
Définissez @ MailServerName =''
déclarer la valeur BodyType @ varchar(100) @ BodyType = « HTMLBODY »
déclarer la valeur @ cSendUsing char(1) @ cSendUsing = « 2 »
déclarer la valeur @ vcPort varchar(3) @ vcPort = « 25 »
déclarer la valeur @ cAuthenticate char(1) @ cAuthenticate = « 1 »--initialement = 1
déclarer la valeur @ vcDSNOptions varchar(2) @ vcDSNOptions = « 0 »
déclarer la valeur @ vcTimeout varchar(2) @ vcTimeout = "30"
déclarer la valeur @ vcSenderName varchar(128) @ vcSenderName =''
déclarer la valeur @ vcSenderPassword varchar(128) @ vcSenderPassword =''
déclarer @ vcServerName sysname
Définissez @ vcServerName = null
--COMME
DÉCLARE datetime @ CurrDate
DECLARE @ iMsg int
DECLARE @ hr int
DÉCLARER la source @ @FullText
DÉCLARER la description @ varchar(500)
DÉCLARER la sortie @ varchar(1000)
Déclarer @FullText @ vcErrMssg
Déclarer @FullText @ vcErrSource
Déclarer @FullText @ vcErrDescription
--Créer l'objet du message
EXEC @ hr = sp_OACreate « CDO.Message », @ iMsg OUT
EXEC @ hr = sp_OASetProperty @iMsg,'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/sendusing").Value', @ cSendUsing
EXEC @ hr = sp_OASetProperty @iMsg,'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value', @ MailServerName
EXEC @ hr = sp_OASetProperty @ iMsg, 'Configuration.Fields ("http://schemas.microsoft.com/cdo/configuration/SMTPServerPort") .Value', @ vcPort
EXEC @ hr = sp_OASetProperty @ iMsg, ' Configuration.Fields ("http://schemas.microsoft.com/cdo/configuration/SMTPConnectionTimeout") .Value',@vcTimeout
EXEC @ hr = sp_OASetProperty @ iMsg, 'Configuration.Fields ("http://schemas.microsoft.com/cdo/configuration/SMTPUseSSL") .Value', 'False'
EXEC @ hr = sp_OASetProperty @ iMsg, 'Configuration.Fields ("http://schemas.microsoft.com/cdo/configuration/SMTPAuthenticate") .Value', '0'
EXEC @ hr = sp_OASetProperty @ iMsg, 'Configuration.fields ("http://schemas.microsoft.com/cdo/configuration/sendusername") .Value', @ vcSenderName
EXEC @ hr = sp_OASetProperty @ iMsg, 'Configuration.fields ("http://schemas.microsoft.com/cdo/configuration/sendpassword") .Value', @ vcSenderPassword
EXEC @ hr = sp_OAMethod @ iMsg, « Configuration.Fields.Update »
--EXEC @ hr = sp_OAMethod @ iMsg, « Configuration.Fields.Update », null
EXEC @ hr = sp_OASetProperty @ iMsg, « To », @ À
EXEC @ hr = sp_OASetProperty @ iMsg, « De », @ de
EXEC @ hr = sp_OASetProperty « CC », @ iMsg, @ CC
EXEC @ hr = sp_OASetProperty @ iMsg, « Subject », @ objet
--TextBody
EXEC @ hr = sp_OASetProperty @ iMsg, @ BodyType, @ Body
EXEC @ hr = sp_OAMethod @ iMsg, « Envoyer »--, NULL
Si @ hr <> 0
Commencer
Définissez @ vcErrMssg = « Erreur envoi Courriel. »
GoTo ErrMssg
Fin
Autre
Imprimer « Mail envoyé. »
ErrMssg :
Commencer
Impression @ vcErrMssg
Si @ hr <> 0
Commencer
EXEC sp_OAGetErrorInfo @ iMsg, @ vcErrSource out, @ vcErrDescription out
Impression @ hr
Impression @ vcErrSource
Impression @ vcErrDescription
Fin
--Déterminer s'il existe ou aller de nettoyage.
Si @ vcErrMssg = « CDO.Message objet création d'erreur. »
Retour
Autre
Goto Cleanup
Fin
Nettoyage :
--Certaines erreurs après chaque étape si vous devez le faire.
--Nettoyer les objets créés.
EXEC @ hr = sp_OADestroy @ iMsg
FIN
ALLER
No comments:
Post a Comment