我有一个调用bat文件的Vb脚本。bat文件包含逻辑以发送email.i使用objShell.run运行bat文件。我在bat文件中给出了一个无效的电子邮件服务器名称。电子邮件不是sent.But objShell.run总是返回0.如何在这种情况下进行异常处理。请帮助
答案 0 :(得分:0)
如果您使用objShell.run
方法,它将运行单独的进程,而不关心您正在运行的当前进程。我会看ProcessStartInfo
。我想你可以从ProcessStartInfo
重定向输入/输出/错误流。 Here和here是关于它的一些链接
答案 1 :(得分:0)
您最好的选择是使用CDO直接从VBScript发送您的电子邮件。否则,批处理中的错误处理非常困难,您将不得不求助于退出代码。
答案 2 :(得分:0)
如果您想在没有安装的情况下发送,请尝试第二种方法。你必须初始化对象。在该示例中,我删除链接中的h,因为我无法发布链接
CDO.MESSAGE
'Script to send an email through QTP nice one Set oMessage = CreateObject("CDO.Message")
'==This section provides the configuration information for the remote SMTP server. '==Normally you will only change the server name or IP. oMessage.Configuration.Fields.Item _ ("ttp://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'Name or IP of Remote SMTP Server oMessage.Configuration.Fields.Item _ ("ttp://schemas.microsoft.com/cdo/configuration/smtpserver") =""
'Server port (typically 25) oMessage.Configuration.Fields.Item _ ("ttp://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
oMessage.Configuration.Fields.Update oMessage.Subject = "Test Mail" oMessage.Sender = "" oMessage.To ="" 'oMessage.CC = "" 'oMessage.BCC = "" oMessage.TextBody = "Test Mail from QTP"&vbcrlf&"Regards,"&vbcrlf&"Test" oMessage.Send
Set oMessage = Nothing