Djabarov, Robert
Robert.Djabarov at usaa.com
Thu Jul 10 16:31:16 CDT 2003
You can use CDO object model to avoid having to have SQLMail running on your server. Also, here's a stored procedure that you can use as a sample.
create procedure dbo.sp_send_cdosysmail (
@SMTPServer varchar(128),
@From varchar(100),
@To varchar(100),
@Subject varchar(100)= ' ',
@Body varchar(8000) = ' '
as
declare @iMsg int ,
@hr int ,
@source varchar(255) ,
@description varchar(500),
@output varchar(1000)
-- Do some error handling after each step if you need to.
exec @hr = sp_OACreate 'CDO.Message', @iMsg out
exec @hr = sp_OASetProperty @iMsg, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/sendusing").Value','2'
exec @hr = sp_OASetProperty @iMsg, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value', @SMTPServer
exec @hr = sp_OAMethod @iMsg, 'Configuration.Fields.Update', null
exec @hr = sp_OASetProperty @iMsg, 'To', @To
exec @hr = sp_OASetProperty @iMsg, 'From', @From
exec @hr = sp_OASetProperty @iMsg, 'Subject', cast(@Subject as varchar(100))
exec @hr = sp_OASetProperty @iMsg, 'TextBody', @Body
exec @hr = sp_OAMethod @iMsg, 'Send', NULL
if @hr <> 0 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
exec @hr = sp_OADestroy @iMsg
GO
Robert Djabarov
Senior SQL Server DBA
USAA IT/DBMS
? (210) 913-3148 - phone
? (210) 753-3148 - pager
-----Original Message-----
From: Joe Rojas [mailto:JRojas at tnco-inc.com]
Sent: Thursday, July 10, 2003 1:20 PM
To: 'dba-sqlserver at databaseadvisors.com'
Subject: [dba-SQLServer]Auto email users from SS7 on the 1st of month.
Hi All,
I have a database in SQL Server 7 that stores time sheet information. Users
submit time sheets for the previous month. For example, on July 1st they
will need to submit their time sheet for June.
I have a table with the users and their e-mail addresses. What I would like
SQL Server to do is on July 1st automatically send out an e-mail to the
users who have not submitted a time sheet that will remind them that it is
due. I do not have a problem with creating a query that will tell me who
these users are, but I would like some help on how to make SQL Server run
this task, on its own, every month and e-mail a reminder to the qualifying
users.
Any ideas?
Thanks!
Joe R.
This electronic transmission is strictly confidential to TNCO, Inc. and
intended solely for the addressee. It may contain information which is
covered by legal, professional, or other privileges. If you are not the
intended addressee, or someone authorized by the intended addressee to
receive transmissions on behalf of the addressee, you must not retain,
disclose in any form, copy, or take any action in reliance on this
transmission. If you have received this transmission in error, please notify
the sender as soon as possible and destroy this message. While TNCO, Inc.
uses virus protection, the recipient should check this email and any
attachments for the presence of viruses. TNCO, Inc. accepts no liability for
any damage caused by any virus transmitted by this email.
_______________________________________________
dba-SQLServer mailing list
dba-SQLServer at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/dba-sqlserver
http://www.databaseadvisors.com