CREATE PROCEDURE sp_SMTPemail
(
@From as nvarchar(50),
@To as nvarchar(50),
@Subject as nvarchar(255),
@Body as text
)
AS
-- Declare
DECLARE @message int
DECLARE @config int
DECLARE @hr int
DECLARE @src varchar(255), @desc varchar(255)
EXEC @hr = sp_OACreate 'CDO.Message', @message OUT -- create the message object
EXEC @hr = sp_OACreate 'CDO.Configuration', @config OUT -- create the configuration object
-- Configuration Object
EXEC @hr = sp_OASetProperty @config, 'Fields(cdoSendUsingMethod)', 'cdoSendUsingPort' -- Send the message using the network
EXEC @hr = sp_OASetProperty @config, 'Fields(cdoSMTPServer)', 'your.server.com' -- SMTP Server
EXEC @hr = sp_OASetProperty @config, 'Fields(cdoSMTPServerPort)', 25 -- Server SMTP Port
EXEC @hr = sp_OASetProperty @config, 'Fields(cdoSMTPAuthenticate)', 'cdoAnonymous' -- Anonymous SMTP Authenticate
EXEC sp_OAMethod @config, 'Fields.Update'
-- Message Object
EXEC @hr = sp_OASetProperty @message, 'Configuration', @config -- set message.configuration = config
EXEC @hr = sp_OASetProperty @message, 'To', @To
EXEC @hr = sp_OASetProperty @message, 'From', @From
EXEC @hr = sp_OASetProperty @message, 'Subject', @Subject
EXEC @hr = sp_OASetProperty @message, 'TextBody', @Body
EXEC sp_OAMethod @message, 'Send()'
-- Destroys the objects
EXEC @hr = sp_OADestroy @message
EXEC @hr = sp_OADestroy @config
-- Errorhandler
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @message, @src OUT, @desc OUT
SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
RETURN
END
GO
Y para ejecutarlo
EXEC sp_SMTPemail 'from@example.email.com', 'to@example.email.com', 'Subjecttext','Messagetext'
7 comments:
Muy bueno!
vos te das una idea d lo peligroso q puede llegar a ser estas lineas de codigo en las manos inadecuadas !!! ????
:D
Y si...pero bueno, uno se debe a su publico.
jeje
Genial! Justo lo que necesitaba!!! Muchas gracias:D
PD: tranquilos, yo tengo manos adecuadas
Perdón pero no entendí porque es peligroso este stored procedure en manos inadecuadas.
¿Y los permisos?, no debería haber un Admin atras de cada SQL Server.
buenas tengo un problema con el codigo que ha facilitado, a parte de cambiar el server del correo que mas hay que cambiar por que lo estoy correo local no me da errores pero no me envia nada que podra ser???
Esta tarde me puse y al final lo saqué, os dejo el link con el paquete compilado en .jar para que lo ejecuteis y tambien os dejo el codigo en un archivo de tecto.
Yo trabajo con linux, alomejor si abrís el archivo de texto en windows no se ve bien.
http://www.gigasize.com/get.php?d=mtb8o8zf2xc
Un saludo.
Post a Comment