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计划任务本身也支持发送邮件,看下图。
作者:SVENNEE
出处:http://www.cnblogs.com/svennee
本文采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
如果您觉得此文有帮助,请点击推荐和关注我。您的支持将鼓励我继续创作!
出处:http://www.cnblogs.com/svennee
本文采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
如果您觉得此文有帮助,请点击推荐和关注我。您的支持将鼓励我继续创作!