Ver Mensaje Individual
  #3 (permalink)  
Antiguo 02/03/2004, 08:03
AntofagastaCL
 
Fecha de Ingreso: enero-2004
Ubicación: Antofagasta
Mensajes: 40
Antigüedad: 21 años, 1 mes
Puntos: 0
Procedimiento Para Enviar Correo Con Sql Server 2000 y xp_sendmail

he probado con varios procedimientos entre ellos:
xp_cdosendmail
xp_sendmail
SP_CDONTS_NewMail_Send
sp_Send_CDONTSMail
sp_send_cdosysmail .... etc

y el que creo que tiene mas futuro es este


CREATE PROCEDURE [dbo].[sp_send_cdosysmail ]
@From varchar(100) ,
@To varchar(100) ,
@Subject varchar(100)=" ",
@Body varchar(4000) =" "
/************************************************** *******************

This stored procedure takes the parameters and sends an e-mail.
All the mail configurations are hard-coded in the stored procedure.
Comments are added to the stored procedure where necessary.
References to the CDOSYS objects are at the following MSDN Web site:
http://msdn.microsoft.com/library/de..._messaging.asp

************************************************** *********************/
AS
Declare @iMsg int
Declare @hr int
Declare @source varchar(255)
Declare @description varchar(500)
Declare @output varchar(1000)

--************* Create the CDO.Message Object ************************
EXEC @hr = sp_OACreate 'CDO.Message', @iMsg OUT

--***************Configuring the Message Object ******************
-- This is to configure a remote SMTP server.
-- http://msdn.microsoft.com/library/de..._sendusing.asp
EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/sendusing").Value','2'
-- This is to configure the Server Name or IP address.
-- Replace MailServerName by the name or IP of your SMTP Server.
EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value', 'nombreDelServidorSMTP'

-- Save the configurations to the message object.
EXEC @hr = sp_OAMethod @iMsg, 'Configuration.Fields.Update', null

-- Set the e-mail parameters.
EXEC @hr = sp_OASetProperty @iMsg, 'To', @To
EXEC @hr = sp_OASetProperty @iMsg, 'From', @From
EXEC @hr = sp_OASetProperty @iMsg, 'Subject', @Subject

-- If you are using HTML e-mail, use 'HTMLBody' instead of 'TextBody'.
EXEC @hr = sp_OASetProperty @iMsg, 'TextBody', @Body
EXEC @hr = sp_OAMethod @iMsg, 'Send', NULL

-- Sample error handling.
IF @hr <>0
select @hr
BEGIN
EXEC @hr = sp_OAGetErrorInfo NULL, @source OUT, @description OUT
IF @hr = 0
BEGIN
SELECT @output = ' Source: ' + @source
PRINT @output
SELECT @output = ' Description: ' + @description
PRINT @output
END
ELSE
BEGIN
PRINT ' sp_OAGetErrorInfo failed.'
RETURN
END
END

-- Do some error handling after each step if you have to.
-- Clean up the objects created.
EXEC @hr = sp_OADestroy @iMsg

el problema que tiene la mayoria de estos procedimientos, es que necesitan configuración del sql server .... y con respecto a esto no puedo realizar demasiados cambios en la configuración de sql server, ya que de esta base depende mucha información (nivel de prioridad alto), en la cual no estoy autorizado para efectuar cambios, especialmente al momento de configurar sql server. Es por esto que el procedimiento sp_send_cdosysmail tiene más futuro ya que no me exige que configure algo... ahora el problema es que no funciona y no sé por que? ... si alguién tiene alguna idea, u otro procedimiento el cual se pueda enviar mail por sql server 2000, lo agradeceria. O tal vez alguna manera precisa de configurar para enviar correo con xp_sendmail

Última edición por AntofagastaCL; 02/03/2004 a las 11:59