前言
wsh中可以通过CDO.Message对象发送邮件,当然你需要在发件箱中设置开启POST/SMTP功能,下面展示下js和vbs的功能代码。
该技术本身很旧,例如不支持TLS/STARTTLS。因此,在使用租赁的邮件服务器环境中,可能需要TLS/STARTTLS,而CDO不能在这样的邮件服务器中使用。
js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| function SetMail() { cdoMsg = new ActiveXObject("CDO.Message") cdoMsg.From = "[email protected]" cdoMsg.To = "[email protected]" namespace = "http://schemas.microsoft.com/cdo/configuration/" cdoMsg.Configuration.Fields.Item(namespace + "sendusing") = 2 cdoMsg.Configuration.Fields.Item(namespace + "smtpserver") = "smtp.163.com" cdoMsg.Configuration.Fields.Item(namespace + "smtpserverport") = 25 cdoMsg.Configuration.Fields.Item(namespace + "smtpauthenticate") = 1 cdoMsg.Configuration.Fields.Item(namespace + "sendusername") = "[email protected]" cdoMsg.Configuration.Fields.Item(namespace + "sendpassword") = "SDFSDFGWERFFSGJ" cdoMsg.Configuration.Fields.Item(namespace + "smtpusessl") = true cdoMsg.Configuration.Fields.Update() }
function SendMail() { cdoMsg.Subject = title cdoMsg.Textbody = cry cdoMsg.Send() cdoMsg = null }
|
js的测试了几天,有时候会出现连接不上服务器无法发送,还是有些不太稳定。
vbs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| Dim Mail,strCfg Set Mail=CreateObject("CDO.Message") strCfg="http://schemas.microsoft.com/cdo/configuration/" Set Args=WScript.Arguments
With Mail .Configuration(strCfg & "smtpauthenticate")=1 .Configuration(strCfg & "sendusing")=2 .Configuration(strCfg & "smtpserver")="smtp.163.com" .Configuration(strCfg & "smtpserverport")=25 .Configuration(strCfg & "sendusername")="[email protected]" .Configuration(strCfg & "sendpassword")="SDFSDFGWERFFSGJ" .Configuration.Fields.Update .From="[email protected]" .To="[email protected]" .Subject="邮件标题" .TextBody="邮件内容" .Fields.Update End With
Mail.Send Set Mail=Nothing Set Args=Nothing
|
vbs我就不说了,没怎么用过,测试是可以用的。代码没啥区别,所以也会有偶尔连接服务器失败,发送不出去的bug。
参考文献
JScriptでメール送信
在WINDOWS中利用VBS直接发送邮件