Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 使用VBS调用文本文件以填充电子邮件中的字段_Email_Vbscript - Fatal编程技术网

Email 使用VBS调用文本文件以填充电子邮件中的字段

Email 使用VBS调用文本文件以填充电子邮件中的字段,email,vbscript,Email,Vbscript,我正在创建一个脚本,放置在服务器上运行,无需用户交互,当满足某些条件时将发送电子邮件。我已经运行了criteria脚本,但我希望使脚本易于为每个服务器部署和修改 我试图让脚本调用文本文件来填充电子邮件中的“收件人”字段。文本文件将每行放置一个电子邮件地址(我在地址的末尾放了一个分号,因为我知道多个TO地址用分号分隔) 我在调用脚本时尝试了许多不同的变体,要么在“收件人”行上出现错误,要么在脚本中出现错误,结果没有定义收件人。以下是脚本: `Set objFSO = CreateObject("S

我正在创建一个脚本,放置在服务器上运行,无需用户交互,当满足某些条件时将发送电子邮件。我已经运行了criteria脚本,但我希望使脚本易于为每个服务器部署和修改

我试图让脚本调用文本文件来填充电子邮件中的“收件人”字段。文本文件将每行放置一个电子邮件地址(我在地址的末尾放了一个分号,因为我知道多个TO地址用分号分隔)

我在调用脚本时尝试了许多不同的变体,要么在“收件人”行上出现错误,要么在脚本中出现错误,结果没有定义收件人。以下是脚本:

`Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objDictionary = CreateObject("Scripting.Dictionary")
Set objFileEmailAddresses = objFSO.OpenTextFile("EmailAddresses.txt", 1)
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set wshShell = WScript.CreateObject("WScript.Shell")


strComputerName = wshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")

ServicesArray = Split (objFileEmailAddresses.ReadAll, vbNewLine)

For Each strService In ServicesArray
    objDictionary.Add strService, strService
Next



Set objEmail = CreateObject("CDO.Message")
objEmail.From = "email@server.com"
objEmail.To = objFileEmailAddresses
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp address"
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 
objEmail.Configuration.Fields.Update
objEmail.Fields.Item("urn:schemas:mailheader:X-MSMail-Priority") = "High"
objEmail.Fields.Item("urn:schemas:mailheader:X-Priority") = 2
objEmail.Fields.Item("urn:schemas:httpmail:importance") = 2
objEmail.Fields.Update
objEmail.Subject = "Primary Server " & Ucase(strComputerName) & " is Rebooting Now"
objEmail.TextBody ="The primary server " & Ucase(strComputerName) & " is scheduled to reboot at this time.  The server will be offline in less than one minute.  .... "
objEmail.Send

objFileEmailAddresses.Close()`

objEmail
对象的
To
字段应该是包含一个或多个电子邮件地址的字符串。您正在为其分配TextStream对象(
objFileEmailAddresses

你说你的电子邮件地址已经以分号结尾了?请尝试以下方法:

' Open the text file containing all of the e-mail addresses...
Set objFileEmailAddresses = objFSO.OpenTextFile("EmailAddresses.txt", 1)

' Read the entire file. Replace newlines with nothing to get a single
' string of semicolon-separated e-mail addresses...
strAddresses = Replace(objFileEmailAddresses.ReadAll, vbCrLf, "")

' Assign the string to the e-mail object...
objEmail.To = strAddresses

您可以去掉
字典
对象。除非您担心可能多次列出相同的电子邮件地址,否则我们可能需要使用一个。

没问题。很高兴听到这个消息!