Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2000 Forums
 SQL Server Administration (2000)
 Auto mail response

Author  Topic 

Ionline
Starting Member

2 Posts

Posted - 2004-11-30 : 07:54:15
Hi,

I am writing a two tier application with the backend as MSDE 2K. I have to store the user details of an asset like "user name", "hired date", "expiry date", "user ID", "Manager ID" etc. I want to send an auto reminder mail to the user and its manager on the date of expiry (to return the asset). How can I achieve this?

Any help is highly appreciated.

Regards
Ionline.

ehorn
Master Smack Fu Yak Hacker

1632 Posts

Posted - 2004-11-30 : 08:01:23
What is your app written in?
Go to Top of Page

Wanderer
Master Smack Fu Yak Hacker

1168 Posts

Posted - 2004-11-30 : 09:37:59
You could do all of this inside SQL :-) Using the CDO.Message component, and appropriate Table structure's, and SQL Scheduler. Of course, that might not be the best way, but it is a way.

see below an example of an SP that can do the mailing (based 95% on a piece of code from an MS example, somewhere):


if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[up_spoa_sendmail]')
and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[up_spoa_sendmail]
GO

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

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

This stored procedure takes the above parameters and sends an e-mail.
All of the mail configurations are hard-coded in the stored procedure.
Comments are added to the stored procedure where necessary.
Reference 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
-- sendusing value of 2 sets for send message over the network (SMTP over the network)
-- http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cdosys/html/_cdosys_cdosendusing_enum.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', 'mailserver'

-- 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 need to.
-- Clean up the objects created.
EXEC @hr = sp_OADestroy @iMsg
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

--exec up_spoa_sendmail 'SQLMail_dev', 'Someone@Somewhere.com','CDO mail test','determine whether we can use this'


CiaO

*##* *##* *##* *##*

Chaos, Disorder and Panic ... my work is done here!
Go to Top of Page

brendita
Starting Member

38 Posts

Posted - 2005-10-13 : 18:56:32
Question

For the @Body part of the message, can you attach an .html file? Or how can I send an html file?

Thanks for your time!
Go to Top of Page

cp_rajkumar
Starting Member

1 Post

Posted - 2005-12-02 : 06:31:22
You had told that its not a best method,then how can we achieve??any other things are there.
How about windows servicing?
Go to Top of Page
   

- Advertisement -