2011-02-23 5 views
0

'변수가 정의되지 않았습니다.'라는 메시지가 나타납니다.이 문제는 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 
+2

당신은 상단에있는 '옵션 Explicit' 선언을 넣어 깜빡 채워지지 않습니다 그래서 당신이 어디 getEmailAddresses()를 호출하는 것처럼 그것은 보이지 않는 당신의 코드. ** 항상 **, 항상 Option Explicit을 켜고 VBScript를 작성하십시오. –

답변

0

파일을 읽을 수 없습니다 당신의 emails 배열

0

정의되지 않은 var에에서 어떤 라인 :

첫째, 파일의 상단에 var에 배열이있다? 또는 var 이름은 무엇입니까?

어느 쪽이든 'strLogText'는 어디에도 정의되어 있지 않습니다. 또한 기본 ASP 페이지 인 경우 Option Explicit 문을 맨 위에 놓습니다.

+0

아, 정의되지 않은 변수가 이메일 주소 'emailAddresses'의 루프 안에 있습니다 – nik0lias

+0

'Dim emailAddresses'를 루프 회선 위에 놓으면 해결됩니까? –

+0

두렵지는 않지만 loop 변수는 그렇게 생각하지 않습니다. – nik0lias

관련 문제