VBS调用OUTLOOK发送邮件,windows计划任务定时拉起VBS调用OUTLOOK发送邮件

OUTLOOK有延迟传递功能,可延迟传递的发送邮件在功能设计时(mircosoft的support帮助页的解释)就是邮件发送时的时间而不是邮件发送成功后的时间。比如早上10点发一封11点后的延迟传递邮件,11点后成功发出,可邮件的发送时间显示还是10点而不是我想要的发送成功后的时间11点!所以想用vbs调用outlook发送邮件,配合windows计划任务设置定时启动。

 

vbs调用outlook发送邮件代码

以下test1.vbs、test2.vbs代码方式在windows7下测试了,都行:

test1.vbs

set   out=WScript.CreateObject("Outlook.Application")   
Set oitem = out.CreateItem(olMailItem)
With oitem
.Subject ="这里是邮件主题"&now()
.To = "收信人@123.com"
.Body = "亲爱的XXX"&chr(13)&"  AAAAAAAAAAAAAAAAAA."&chr(13)&"你亲爱的XXXXX"&chr(13)&MONTH(DATE())&"月"&day(DATE())&"日"
.Send
End With
set out=nothing
set oitem=nothing
MsgBox("邮件成功提交")

test2.vbs

'启动Outlook
Set out=WScript.CreateObject("Outlook.Application")

'新建一份邮件
Set mailitem=out.CreateItem(0)
'设置邮件的主题
mailitem.SubJect="加班"
'设置邮件的正文
mailitem.Body="加班b"
'设置收件人
mailitem.To="test@163.com"
'增加附件
'mailitem.Attachments.Add("附件.txt")
mailitem.Send
Set mailitem=Nothing

Set out=Nothing

读取收件人、发件人、邮件内容配置文件方式,没测试过,代码记录下:

ForReading=1
TristateFalse=0
'建立FSO对象
Set fs=CreateObject("Scripting.FileSystemObject")
'打开存放内容的文件
Set file=fs.OpenTextFile("内容.txt",ForReading,TristateFalse)
'读取全部内容
detail=file.ReadAll
Set file=Nothing
'打开存放收件人地址的文件
Set file=fs.OpenTextFile("收件人.txt",ForReading,TristateFalse)
'启动Outlook
Set out=WScript.CreateObject("Outlook.Application")
'按照收件人地址文件种的内容群发邮件
Do While file.aAtEndOfLine<>True
'读取一个收件人地址
manto=file.ReadLine 
'新建一份邮件
Set mailitem=out.CreateItem(0)
'设置邮件的主题
mailitem.SubJect="主题内容"
'设置邮件的正文
mailitem.Body=detail
'设置收件人
mailitem.To=manto
'增加附件
mailitem.Attachments.Add("附件.txt")
mailitem.Send
Set mailitem=Nothing
Loop
Set fs=Nothing
Set out=Nothing

  

最后windows计划任务本身也支持发送邮件,看下图。

 

posted @ 2015-05-17 15:05  程序员斯文  阅读(2760)  评论(0编辑  收藏  举报