SQL Server - Enviar mail sin usar SQLMail

 
Vista:

Enviar mail sin usar SQLMail

Publicado por Chema (1 intervención) el 05/04/2005 12:00:44
Saludos a todos; tengo una BBDD en SQL Server y necesito estar informado de ciertas acciones que realizen los clientes. Para ello al realizar ciertas acciones en ciertas tablas habrá un trigger que me enviará un mail y así estaré informado.

El problema es que para hacer esto no puedo utilizar el SQL Mail por motivos ajenos a mi voluntad, por lo tanto sus sp tampoco.

Existe alguna forma de instanciar el objento ASPMAIL desde Transanct-SQL?

Algo asi...

CREATE PROCEDURE EnvioMail(
@De varchar,
@Para varchar,
@Asunto varchar,
@Cuerpo varchar)
AS
DECLARE
Mail = CreateObject("Persits.MailSender")
Mail.Host = "xxx.xx.xxx.xxx"
Mail.From = @De
Mail.FromName = @Para
Mail.Subject = @Asunto
Mail.Body = @Cuerpo
Mail.Send
END

Soy nuevo en este mundo de BBDD asi que agradezco cualquier comentario.

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Enviar mail sin usar SQLMail

Publicado por eluard (2 intervenciones) el 15/07/2005 17:48:42
Prueba con esto, yo lo estoy desarrollando aun y me esta dando error al enviar el mensaje, si lo soluciono antes te aviso, creo saldra un poco regado, si deseas te envio el procedure a tu correo....

ALTER PROC usp_Persits_MailTest(@vMailTo VARCHAR(255), @vMailFrom VARCHAR(255))
AS

BEGIN

SET CONCAT_NULL_YIELDS_NULL OFF

DECLARE
@Hresult INT,
@iMsg INT,
@config INT, --@iConf
@ErrorSource VARCHAR (255),
@ErrorDesc VARCHAR (255),
@ServerIPAddr VARCHAR(15)

BEGIN

EXEC @Hresult = sp_OACreate 'Persits.MailSender', @iMsg OUT
IF @Hresult <> 0
BEGIN
EXEC sp_OAGetErrorInfo @iMsg, @ErrorSource OUT, @ErrorDesc OUT

RAISERROR (@ErrorDesc, 16, 1, 1, 1, 2)

PRINT 'Error Occurred Calling Object: ' + @ErrorSource + ' ' + @ErrorDesc
RETURN
END

SET @ServerIPAddr = '192.168.0.2'

EXEC @Hresult = sp_OASetProperty @iMsg, 'Host', @ServerIPAddr
EXEC @Hresult = sp_OASetProperty @iMsg, 'AddAddress', @vMailTo
EXEC @Hresult = sp_OASetProperty @iMsg, 'From', @vMailFrom
EXEC @Hresult = sp_OASetProperty @iMsg, 'Subject', 'Notificacion PErsits'
EXEC @Hresult = sp_OASetProperty @iMsg, 'FromName', 'DMSQL Production Notifications Persits'

EXEC @Hresult = sp_OASetProperty @iMsg, 'Body', 'El mensaje' --@strBodyHTML

/*Now send the message*/
EXEC @Hresult = sp_OAMethod @iMsg, 'Send' --'SendToQueue()'
IF @Hresult <> 0
BEGIN
EXEC sp_OAGetErrorInfo @iMsg, @ErrorSource OUT, @ErrorDesc OUT
PRINT 'Error Occurred Calling Object (despues de envio): ' + @ErrorSource + ' ' + @ErrorDesc
RETURN
END

/*Cleanup*/
EXEC @Hresult = sp_OADestroy @iMsg

END
END

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Enviar mail sin usar SQLMail (Resuelto)

Publicado por eluard (2 intervenciones) el 15/07/2005 20:55:20
YA resolvi el problema, la causa del error era que estaba considerando el metodo "AddAdress" como una propiedad, lo cual no es cierto.

de todas maneras, entrate a este link y encontraras un procedimiento funcional

http://support.persits.com/show.asp?code=PS01050851

Por si les interesa, desarrolle un procedimiento para enviar correo, mas o menos similar a este, pero usando CDO (CDOSys.dll), el que viene por defecto en windows XP Pro, pero no lo tengo a mano, me lo piden a mi correo [email protected] (lo reviso cada 2 o 3 dias) y con gusto se los envio.

Cuando tenga un chance este mes, voy a desarrollar un mecanismo generico para enviar correo multiobjeto, de entrada incluire los objetos PErsit, CDO y CDONT.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar