`
izuoyan
  • 浏览: 8928212 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多
问题:ASP.net中每隔一定时间查询数据库表,并根据表里面的条件发送邮件要怎么实现啊?!
要求不影响其他人继续使用网页。

解答:
在SQL server里面建一个作业,定义运行某个(你写的查询)程序。
在sql server中定义一个job
定时运行 下面的存储过程
CREATE PROCEDURE sys_sendmail
@From varchar(100),--发件人
@To varchar(100),--收件人
@Bcc varchar(500),--抄送人
@Subject varchar(400),--主题
@Body varchar(4000),--内容
@stmp_server nvarchar(4000),--发送邮件服务器
@email_user nvarchar(4000),--发送邮件服务器登录用户名
@email_pass nvarchar(4000) --发送邮件服务器登录用户密码
as
Declare @object int
Declare @hr int
EXEC @hr = sp_OACreate 'CDO.Message', @object OUT
EXEC @hr = sp_OASetProperty @object, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/sendusing").Value','2'
EXEC @hr = sp_OASetProperty @object, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value', @stmp_server
--下面三条语句是smtp验证,如果服务器需要验证,则必须要这三句,你需要修改用户名和密码
EXEC @hr = sp_OASetProperty @object, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate").Value','1'
EXEC @hr = sp_OASetProperty @object, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/sendusername").Value',@email_user
EXEC @hr = sp_OASetProperty @object, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/sendpassword").Value',@email_pass
EXEC @hr = sp_OAMethod @object, 'Configuration.Fields.Update', null
EXEC @hr = sp_OASetProperty @object, 'To', @To
EXEC @hr = sp_OASetProperty @object, 'Bcc', @Bcc
EXEC @hr = sp_OASetProperty @object, 'From', @From
EXEC @hr = sp_OASetProperty @object, 'Subject', @Subject
EXEC @hr = sp_OASetProperty @object, 'TextBody', @Body
EXEC @hr = sp_OAMethod @object, 'Send', NULL
--判断出错
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN @object
END
PRINT 'success'
EXEC @hr = sp_OADestroy @object
GO


自己做个静态类,内部封装一个timer,公开一个用于激活timer的方法,在timer的elapsed事件做查询和发送邮件 。最后在global start的时候调一下那个启动timer的方法就行。

可以通过web service来实现,
http://ttyp.cnblogs.com/archive/2005/03/18/121106.html

我有个文章可以给楼主一点思路
http://blog.8384.org/blogview.asp?logID=239
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics