在Windows 7上使用VBScript发送电子邮件

我想了解一个经典ASP或命令行VBScript应用程序可能无法发送电子邮件的方式。 下面的脚本是基于各种来源。 当我尝试从Windows 7虚拟机上的命令/行运行它时,出现错误

CDO.Message.1:“SendUsing”configuration值无效。

事情是,我写的脚本从声称解决这个错误的例子工作! 有什么build议?

Dim fso, stderr, inX, mail, buf, schemaNode Set fso = CreateObject("Scripting.FileSystemObject") Set StdErr = fso.GetStandardStream(2) Set mail = CreateObject("CDO.Message") schemaNode = "http://schemas.microsoft.com/cdo/configuration/" With mail.Configuration.Fields .Item(schemaNode & "sendusing") = 2 'Send the message using the network (SMTP) .Item(schemaNode & "smtpserver") = "my/mail/server" .Item(schemaNode & "smtpserverport") = 25 .Item(schemaNode & "smtpserverpickupdirectory") = "C:\TEMP" End With buf = "" mail.From = "noreply@my/domain" mail.To = "some/user@my/domain" mail.Subject = "Test - via VBScript - " & fso.getTempName() Set inX = fso.OpenTextFile("template.txt", 1) Do While inX.AtEndOfStream = False buf = buf & inX.ReadLine Loop mail.TextBody = buf mail.Send() StdErr.WriteLine("OK.") 

您绝不会将更改应用于邮件配置。 此外,使用拾取目录仅与通过提取邮件(即通过将邮件(文件)放在邮件服务器从中取出的目录)将邮件提交给本地邮件服务器相关,而不是通过SMTP提交邮件时。

改变这个:

 With mail.Configuration.Fields .Item(schemaNode & "sendusing") = 2 .Item(schemaNode & "smtpserver") = "my/mail/server" .Item(schemaNode & "smtpserverport") = 25 .Item(schemaNode & "smtpserverpickupdirectory") = "C:\TEMP" End With 

进入这个:

 With mail.Configuration.Fields .Item(schemaNode & "sendusing") = 2 .Item(schemaNode & "smtpserver") = "my/mail/server" .Item(schemaNode & "smtpserverport") = 25 .Update End With 

问题就会消失。