Jag undrar vad som krävs på serversidan för att man skall kunna använda CDONTS i sina stored procedures i SQL-server 2000. Vi använder oss av två maskiner idag. En webserver och en databasserver. De har operativsystem Windows 2003 server. Dock så tror jag att man valt att inte installera IIS på databas-servern av säkerhetsskäl. Kan detta vara orsaken att CDONTS inte fungerar i mina stored procedures? Hej Johan 1. Lägg först en SP enligt nedan. Och kom ihåg att byta ut smtp-adressen. Sök efter MailServerName och lägg till smtp.mindomain.seCDONTS
JohanSv: CDONTS
CDONTS försvann iom Windows 2003.
Du kan använda CDO istället (Server.CreateObject("CDO.Message"))
Du kan också kopiera över cdonts.dll från en Windows 2000-maskin och köra "regsvr32 c:\windows\system32\cdonts.dll"
// MvH BjörneSv: CDONTS
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/default.asp
?url=/library/en-us/cdosys/html/_cdosys_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/default.asp
-- ?url=/library/en-us/cdosys/html/_cdosys_schema_configuration_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',
'MailServerName'
-- 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
GO
2. Sedan kan du anropa SP från query analysern och skriva exempelvis:
exec sp_send_cdosysmail
@from='domain@domain.se',
@to ='domain@domain.se,
@subject ='Testmail',
@body ='Här kommer ett testmail...'