定时发邮件

问题: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
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值