标题: [问题求助] [已解决]VBS邮件自动发送出错 [打印本页]
作者: endy421 时间: 2009-8-19 10:53 标题: [已解决]VBS邮件自动发送出错
打算做一个报警信息邮件自动发送,由于DELL的服务器自带的监控软件(Openmanager)无法实现自动发送邮件,当机器有故障时,他只能运行指定的程序,所以从网上找了一个VBS,希望能达到预期的效果,可是情况不容乐观,问题好像出在Smtp那里,可是这个smtp的地址我在其他的应用程序中也在用,是没有问题的,不知道各位是否能帮个忙,谢谢了。
代码如下:- For counter = 1 To 3 Step 1
- SendMail
- Next
- Public Sub SendMail
- NameSpace = "http://schemas.microsoft.com/cdo/configuration/"
- Set Email = CreateObject("CDO.Message")
- Email.From = "Server" '发件人名称
- Email.To = "test@163.com" '收件人邮件地址
- Email.Subject = GetIP&" 温度告警!" '邮件主题
- Email.Textbody="Test" '邮件内容
- With Email.Configuration.Fields
- .Item(NameSpace&"sendusing") = 2
- .Item(NameSpace&"smtpserver") = "smtp.163.com" 'SMTP服务器地址
- .Item(NameSpace&"smtpserverport") = 25 'SMTP服务器端口
- .Item(NameSpace&"smtpauthenticate") = 1 'SMTP身份验证
- .Item(NameSpace&"sendusername") = "test" '发件帐号
- .Item(NameSpace&"sendpassword") = "test" '发件密码
- .Update
- End With
- Email.Send
- End Sub
- Public Function GetIP
- ComputerName="."
- Dim objWMIService,colItems,objItem,objAddress
- Set objWMIService = GetObject("winmgmts:\\" & ComputerName & "\root\cimv2")
- Set colItems = objWMIService.ExecQuery("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
- For Each objItem in colItems
- For Each objAddress in objItem.IPAddress
- If objAddress <> "" then
- GetIP = objAddress
- Exit Function
- End If
- Next
- Next
- End Function
复制代码
作者: defanive 时间: 2009-8-19 11:21
这个报错,我记得是帐号和密码没能通过服务器。。。
有可能我记错。。。
作者: endy421 时间: 2009-8-19 11:27 标题: 回复 2楼 的帖子
你指的是这一段代码里面的帐号吗?》、
.Item(NameSpace&"sendusername") = "test" '发件帐号
.Item(NameSpace&"sendpassword") = "test" '发件密码
可是我已经测试过这个帐号了,通过webmail测的这个帐号。
作者: defanive 时间: 2009-8-19 11:46
我没怎么看代码。。。
http://www.robvanderwoude.com/vbstech_internet_email.php
这是个发送邮件的实例,你可以修改下代码自己用。。。
作者: endy421 时间: 2009-8-19 12:01 标题: 回复 4楼 的帖子
看着有点吃力的,我需要改那些内容?
我的目的是,想得到服务器当前的温度值,如果值大于某个数,他就会自动发送邮件到指定的邮箱。
作者: defanive 时间: 2009-8-19 12:24
那网页已经做好函数了,如果懒可以直接复制整个function,然后调用
EMail( myFrom, myTo, mySubject, myTextBody, myHTMLBody, myAttachment, mySMTPServer, mySMTPPort )
作者: endy421 时间: 2009-8-19 12:43
好,我再试试,谢谢。
有问题我会继续的
作者: endy421 时间: 2009-8-19 13:04 标题: 回复 6楼 的帖子
劳驾
请指点
作者: zqz0012005 时间: 2009-8-19 13:19
为何不说一下你是如何调用的呢?(代码)
作者: endy421 时间: 2009-8-19 13:46 标题: 回复 9楼 的帖子
麻烦看一下这里:
http://www.smallrascal.cn/smallrascal/article.asp?id=1116
谢谢
作者: endy421 时间: 2009-8-19 15:42
问题已解决。其实只要这一段代码就可以了- For counter = 1 To 3 Step 1
- SendMail
- Next
- Public Sub SendMail
- NameSpace = "[url=http://schemas.microsoft.com/cdo/configuration/]http://schemas.microsoft.com/cdo/configuration/[/url]"
- Set Email = CreateObject("CDO.Message")
- Email.From = "Server" '发件人名称
- Email.To = "[email=test@163.com]test@163.com[/email]" '收件人邮件地址
- Email.Subject = " 温度告警!" '邮件主题
- Email.Textbody="Test" '邮件内容
- With Email.Configuration.Fields
- .Item(NameSpace&"sendusing") = 2
- .Item(NameSpace&"smtpserver") = "smtp.163.com" 'SMTP服务器地址
- .Item(NameSpace&"smtpserverport") = 25 'SMTP服务器端口
- .Item(NameSpace&"smtpauthenticate") = 1 'SMTP身份验证
- .Item(NameSpace&"sendusername") = "test" '发件帐号
- .Item(NameSpace&"sendpassword") = "test" '发件密码
- .Update
- End With
- Email.Send
- End Sub
复制代码
谢谢各位关注!!
作者: zqz0012005 时间: 2009-8-19 16:01 标题: 回复 11楼 的帖子
你确定可以吗?
SendMail与下面的GetIP函数根本不相关。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |