'변수가 정의되지 않았습니다.'라는 메시지가 나타납니다.이 문제는 vbscript의 변수 범위와 관련이있는 것으로 추측되지만 내 지식에는이 제한이 있습니다.VB 스크립트 - 정의되지 않은 변수
나는 이것들을 개별적으로 점검했기 때문에 이메일 주소의로드와 실제 이메일 발송을 안다. 전자 메일 주소 목록을 반복하여 각 로그 파일을 보내려고합니다.
추가 정보가 필요하십니까?
dim emails()
function getEmailAddresses()
dim objFSO
dim objConfigFile
dim strLine
dim iCounter
const ForReading = 1, ForWriting = 2, ForAppending = 8
set objFSO = createobject("Scripting.FileSystemObject")
set objConfigFile = objFSO.OpenTextFile("emailAddresses.config", ForReading)
iCounter = 0
do while not objConfigFile.AtEndOfStream
redim preserve emails(iCounter)
strLine = trim(objConfigFile.ReadLine)
emails(iCounter) = strLine
iCounter = iCounter + 1
loop
objConfigFile.Close
end function
function writetolog(strLogtext)
dim objFSO
dim objLogfile
const ForReading = 1, ForWriting = 2, ForAppending = 8
set objFSO = createobject("Scripting.FileSystemObject")
set objLogfile = objFSO.OpenTextFile("xxx.log", ForAppending, true)
objLogfile.Writeline now() & " - " & strLogText
objLogfile.Close
call EmailLogFile(strLogText)
end function
function EmailLogFile(bodyText)
for each emailAddress in emails
set objEmail = CreateObject("CDO.Message")
objEmail.From = "[email protected]"
objEmail.To = emailAddress
objEmail.Subject = "File Move Log"
objEmail.Textbody = bodyText
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
"xxxxxx"
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
next
end function
당신은 상단에있는 '옵션 Explicit' 선언을 넣어 깜빡 채워지지 않습니다 그래서 당신이 어디
getEmailAddresses()
를 호출하는 것처럼 그것은 보이지 않는 당신의 코드. ** 항상 **, 항상 Option Explicit을 켜고 VBScript를 작성하십시오. –