Windows中VBScript发送邮件可以借助 CDO(Collaboration Data Objects——协作数据对象),此对象文件为C:\Windows\System32\cdosys.dll,它为应用程序提供了编程接口。
示例脚本使用QQ邮箱来发送邮件
需要开启此邮箱的SMTP服务,为了安全考虑此服务默认是关闭的。
开启的步骤:
https://service.mail.qq.com/cgi-bin/help?subtype=1&&no=1001256&&id=28
获得的授权码作为第三方客户端登录QQ邮箱的专用密码。VBS脚本:
Dim CDO'发送邮箱Const Email_From = "123456@qq.com"'密码为开启SMTP服务时获得的授权码Const Password = "xxxxxxxxx"'接收邮箱Const Email_To = "123456@qq.com"Set CDO = CreateObject("CDO.Message") '邮件主题CDO.Subject = "From WINCC"CDO.From = Email_FromCDO.To = Email_To'邮件内容CDO.TextBody = "Hello World!"'邮件附件cdo.AddAttachment "C:\hello.txt"Const schema = "http://schemas.microsoft.com/cdo/configuration/"With CDO.Configuration.Fields .Item(schema & "sendusing") = 2 .Item(schema & "smtpserver") = "smtp.qq.com" .Item(schema & "smtpauthenticate") = 1 .Item(schema & "sendusername") = Email_From .Item(schema & "sendpassword") = Password .Item(schema & "smtpserverport") = 465 .Item(schema & "smtpusessl") = True .Item(schema & "smtpconnectiontimeout") = 60 .UpdateEnd WithCDO.SendSet CDO = Nothing
收件箱接收到的该邮件
SMTP即Simple Mail Transfer Protocol——简单邮件传输协议,是一个相对简单的基于文本的协议。主要使用TCP端口25,可以简单地通过telnet程序来测试一个SMTP服务器。
telnet连接smtp:
telnet smtp.qq.com 25
CMD中使用telnet连接smtp.qq.com发送一封邮件:
TCP连接成功后,服务端会返回:220 newxmesmtplogicsvrszc9.qq.com XMail Esmtp QQ Mail Server.
红框框起的内容为客户端发送的命令。
黄框内为邮件头MIME(Multipurpose Internet Mail Extensions——多用途互联网邮件扩展)标准扩展的附加域:包含了MIME版本、内容类型、内容传输编码信息。
绿框内为邮件内容:base64编码的helloworld
如果在C脚本中我们就可以使用WinSock2 API建立TCP连接,然后按照上面的操作发送邮件。
- - - 正 文 - - - - - - 结 束 - - -
后台回复『WINCC』阅读更多相关文章。
---
如果你有与本文相关问题可以留言或后台发消息,欢迎点分享、收藏、点赞、在看。