您的位置:首页精文荟萃软件资讯 → 在Windows桌面上使用WSH接收邮件

在Windows桌面上使用WSH接收邮件

时间:2004/10/7 19:07:00来源:本站整理作者:蓝点我要评论(0)


            
             
              
             
            

               
               

            



            公司的销售管理人员日常想要接收订单在$10,000元以上的电子邮件,同时也很愿意感谢来信订购的用户。电子邮件的主体要包括所有必要的信息,因此就没有必要访问公司客户/服务器程序。第一步是近可能地委派数据库服务器的数据。在这里的例子中,我选择了随SQL Server 7.0安装后随带的Northwind数据库。

原文出处:http://www.15seconds.com/issue/991007.htm

   我决定在Northwind数据库中建立一个视图,它将提供所需要的一切。启动SQL Server Enterprise管理器,检查一下Northwind数据库下的视图列表,Order Subtotals视图就在眼前,它计算所有放置在Northwind数据库中的定单总和。我决定在新视图10K_Order_Qry中引用这个视图,如下:

CREATE VIEW dbo.[10K_Order_Qry]
AS
SELECT [order subtotals].OrderID, CONVERT(varchar(15),
[order subtotals].Subtotal) AS 'Subtotal', CONVERT(char(10),
Orders.OrderDate, 110) AS 'OrderDate',
Customers.CompanyName, Customers.ContactName,
Customers.Country, Customers.Phone
FROM [order subtotals], Orders, Customers
WHERE [order subtotals].OrderID = Orders.OrderID AND
Orders.CustomerID = Customers.CustomerID AND
subtotal >= 10000

-- Below lines can be switched in order to look for today's sales over $10,000
-- (comment the next line, and uncomment the second line)

AND OrderDate >= '02-01-1998' AND OrderDate <= '02-28-1998'
--AND OrderDate = convert(char(10),getdate(),110)
   注意:在视图中引用另外一个视图不是一个好的方法。但是,这里对此不做详细地讨论。

   为了不修改Northwind中的数据,并且能在邮件中显示,请回顾这个新视图“10K_Order_Qry”的最后2行。在其上的注释行解释了最后的目的。我要强调指出的是编写一个存储过程能达到更好的性能效果,因为存储过程能被编译。对于SQL Server预先设定一个执行计划,将大大地减少计划执行中的周折。

   为了验证输出的报告所需要的所有字段是否准备好,我们可以在SQL Server Query Analyzer中执行这个视图进行测试。
我们大多数人,在相当多的时候,都在MS-DOS批处理文件中使用过脚本。融入Windows 98、Internet Information Server 4.0、Windows NT Workstation 2000和Windows NT Server 2000中的微软Windows Scripting Host是一个独立语言的脚本引擎。Visual Basic和JavaScript脚本引擎也被包含在Windows Scripting Host中。

   本质上,Windows Scripting Host提供给我们在Windows桌面上运行脚本的功能,或者在命令控制台执行,而不需要在HTML文档或者ASP中执行。这是个强大的功能,并且能由此更深地研究,比如编写登录脚本、管理脚本或者机器自动处理的工作。

   现在准备编写脚本来建立一个报告,并且将它发送电子邮件给服务商管理者。我决定以Visual Basic Scripting语言编写这个脚本,可以使用任何文字编辑器来创建它。唯一的要求是以“vbs”扩展名来保存文件,比如
“MyScript.vbs”。如果安装了Windows NT Option Pack 4,就存在了脚本调试器MSSCRDBG.EXE,它能被用做创建和调试脚本。它远远强于Notepad!

Dim objSendMail
Dim strTo, strFrom
Dim strSubject, strBody
Dim shipUic

' mail constants
Const CdoBodyFormatType = 0 ' Body property is HTML
Const CdoMailFormatType = 0 ' NewMail object is in MIME format

Const CdoNormal = 1 ' Normal importance (default)

strFrom = "admin@northwind.com" ' System administrator or DBA mail account
strTo =" manager@northwind.com" ' Recipient mail account - i.e. Sales Manager
strSubject = "Sales over $10,000" ' Mail subject

' Call function to build the HTML mail body
strBody = MailBody()

' The following section creates the E-mail object and sends the mail
Set objSendMail = CreateObject("CDONTS.NewMail")

objSendMail.From = strFrom
objSendMail.To = strTo
objSendMail.Subject = strSubject
objSendMail.Body = strBody
objSendMail.BodyFormat = CdoBodyFormatType
objSendMail.MailFormat = CdoMailFormatType
objSendMail.Importance = CdoNormal

objSendMail.Send

Set objSendMail = Nothing

' **********************************************************************************

Function MailBody()

Dim oConn
Dim oCmd
Dim oRs
Dim tmpBody
set oConn = CreateObject("ADODB.Connection")
oConn.Open("DATABASE=Northwind;DSN=Northwind;UID=sa;Password=;")
set oCmd = CreateObject("ADODB.Command")
oCmd.ActiveConnection = oConn
oCmd.CommandText = "select * from Northwind.dbo.[10k_order_qry] order by subtotal desc"
oCmd.CommandType = 1
oCmd.Prepared = True
set oRs = oCmd.Execute

oRs.moveFirst
tmpBody = "10K Customer Report"
tmpBody = tmpBody & "As of " & Date() & ""
tmpBody = tmpBody & ""
tmpBody = tmpBody & " ORDER ID "
tmpBody = tmpBody & " SUBTOTAL "
tmpBody = tmpBody & " COMPANY "
tmpBody = tmpBody & " CONTACT "
tmpBody = tmpBody & " COUNTRY "
tmpBody = tmpBody & " PHONE "

while not oRs.EOF
tmpBody = tmpBody & " " & oRs.Fields("OrderID") & " "
tmpBody = tmpBody & " " & "$" & oRs.Fields("Subtotal") & " "
tmpBody = tmpBody & " " & oRs.Fields("CompanyName") & " "
tmpBody = tmpBody & " " & oRs.Fields("ContactName") & " "
tmpBody = tmpBody & " " & oRs.Fields("Country") & " "
tmpBody = tmpBody & " " & oRs.Fields("Phone") & " "
oRs.moveNext
wend

tmpBody = tmpBody & " "

MailBody = tmpBody

set oRs = nothing
set oCmd = nothing
set oConn = nothing

End Function
这里插入了足够的注释用以阐明脚本的含义,但对于那些不熟悉HTML的用户来说,下面是一个简单的标记解释对应表,我在脚本中使用了它们来建立邮件(报告)的主体:

   标记 含义
?lt;/H2> Header Tag Size 2
?lt;/FONT> Font Color "Red"
?lt;/B> Bold Text
?lt;/TABLE> Table Format

?lt;/TR> Table Row
?lt;/TH> Header Cell
?lt;/TD> Data Cell

   现在让我们在Windows Scripting Host中运行编写的Visual Basic脚本。在Windows的资源浏览器Explorer中,用鼠标右键单击MyScript.vbs,选择“属性”,点击“Script”功能页面。

  

   检查“Stop script after specified number of seconds”复选框,设置足够的时间来让脚本运行完成(默认是10秒钟)。按下OK按钮,新的脚本文件就创建了,但是名字改变为MyScript.WSH。WSH文件的内容与古老的“ini”文件类似:

[ScriptFile]
Path=MyScript.vbs

[Options]
Timeout=30
DisplayLogo=1
BatchMode=0

   假设没有错误,在双击MyScript.WSH文件后,邮件接收者将收到一封邮件,内容主体是报告,如下:

   10K Customer Report

   As of 9/13/99

   ORDER ID SUBTOTAL COMPANY CONTACT COUNTRY PHONE
10865 $16387.50 QUICK-Stop Hors t Kloss Germany 0372-035188
10889 $11380.00 Rattlesnake Canyon Grocery Paula Wilson USA (505) 555-5939
10897 $10835.24 Hungry Owl All-Night Grocers Patricia McKenna Ireland 2967 542

   现在可以确认脚本工作正常,最后一步是设置每日的定时执行,这里使用了Windows计划执行程序来完成定时任务的设置。启动Windows计划执行程序,选择Edit菜单,选择Add,输入要执行的脚本名字,设置执行的时间:

   按“OK”按钮,完成设置,这条项目显示如下:
   Windows Scripting Host,CDONTS以及计划执行程序有广泛的应用面,这里只是列举了一个实际的应用。

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 360快剪辑怎么使用 36金山词霸如何屏幕取词百度收购PPS已敲定!3

最新文章 微信3.6.0测试版更新了微信支付漏洞会造成哪 360快剪辑怎么使用 360快剪辑软件使用方法介酷骑单车是什么 酷骑单车有什么用Apple pay与支付宝有什么区别 Apple pay与贝贝特卖是正品吗 贝贝特卖网可靠吗

人气排行 xp系统停止服务怎么办?xp系统升级win7系统方电脑闹钟怎么设置 win7电脑闹钟怎么设置office2013安装教程图解:手把手教你安装与qq影音闪退怎么办 QQ影音闪退解决方法VeryCD镜像网站逐个数,电驴资料库全集同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载EDiary——一款好用的电子日记本