Este procedimiento permite enviar mail desde un Sql Server sin necesidad de utilizar sql mail o alguna rutina externa, y además permite hacerlo en un servidor SMTP con autenticación.
Espero les sea útil.
CREATE PROCEDURE [dbo].[sp_EnviarMail] (@De varchar(100) , @Para varchar(500) , @Titulo varchar(100)=" ", @Mensaje varchar(4000) =" ")
AS
Declare @Correo int
Declare @proc int
Declare @Dir varchar(500)
Declare @DirUse varchar(500)
declare @Usuario varchar(200)
declare @password varchar(100)
set @Usuario = 'cuentaOrigen@server.com.ar'
set @Password = 'la contraseña'
SET @Dir = 'Configuration.fields("'
SET @Dir = @Dir + 'http://schemas.microsoft.com/'
SET @Dir = @Dir + 'cdo/configuration/'
EXEC @proc = sp_OACreate 'CDO.Message', @Correo OUT
SET @DirUse = @Dir + 'sendusing").Value'
EXEC @proc = sp_OASetProperty @Correo, @DirUse,'2'
SET @DirUse = @Dir + 'smtpserver").Value'
EXEC @proc = sp_OASetProperty @Correo, @DirUse, 'smtp.server.com.ar'
SET @DirUse = @Dir + 'smtpserverport").Value'
EXEC @proc = sp_OASetProperty @Correo, @DirUse, '25'
SET @DirUse = @Dir + 'smtpauthenticate").Value'
EXEC @proc = sp_OASetProperty @Correo, @DirUse, '1'
SET @DirUse = @Dir + 'sendusername").Value'
EXEC @proc = sp_OASetProperty @Correo, @DirUse, @Usuario
SET @DirUse = @Dir + 'sendpassword").Value'
EXEC @proc = sp_OASetProperty @Correo, @DirUse, @Password
-- Con esto grabas la configuracion
EXEC @proc = sp_OAMethod @Correo, 'Configuration.Fields.Update', null
-- Metes los parametros
EXEC @proc = sp_OASetProperty @Correo, 'To', @Para
EXEC @proc = sp_OASetProperty @Correo, 'From', @De
EXEC @proc = sp_OASetProperty @Correo, 'Subject', @Titulo
-- Puedes usar 'HTMLBody' o 'Textbody', como lo necesites
EXEC @proc = sp_OASetProperty @Correo, 'HTMLBody', @Mensaje
-- Aqui mandas el mensaje
EXEC @proc = sp_OAMethod @Correo, 'Send', NULL
-- Por si hay error
IF ( @proc <> 0 )
BEGIN
-- Limpia el objeto
EXEC @proc = sp_OADestroy @Correo
RAISERROR('Error enviando correo',15,1)
RETURN
END
-- Limpia el objeto
EXEC @proc = sp_OADestroy @Correo
GO
Luego se deberá ejecutar
sp_configure 'show advanced options', 1
go
RECONFIGURE
GO
sp_configure 'Ole Automation Procedures', 1
RECONFIGURE
EXEC sp_configure 'xp_cmdshell', 1
GO
RECONFIGURE
jueves, 8 de mayo de 2008
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario