09. januar 2010 - 15:10Der er
8 kommentarer og 1 løsning
Rekursiv funktion får: Out of Stack Space
Jeg har en funktion som tager et array af modtagere og sender en mail til dem én for én.
Dette gøres rekursivt, så jeg sikre at serveren er færdig med at behandle forrige mail, inden jeg sætter gang i den næste. Men jeg får "Out of Stack Space" når den har sendt ca. 350 mails.
Function sendManyMails(strType, arrRecipient, intPostInArray, strSubject, strBody, strCC, strBCC, strAttachment) If isArray(arrRecipient) Then numberOfPosts = UBound(arrRecipient) if intPostInArray > numberOfPosts then sendManyMails = true else strModtager = arrRecipient(intpostiarray) blnMailFunctionDone = false blnSuccess = false blnMailFunctionDone = sendJMailNew(strType, 1, "Svar_Laeses_Ikke@mydomain.dk", strSubject, strBody, strModtager, "", "", "", false) if blnMailFunctionDone then intPostInArray = intPostInArray + 1 if sendManyMails(strType, arrRecipient, intPostInArray, strSubject, strBody, strCC, strBCC, strAttachment) then sendManyMails = true end if end if sendManyMails = false end if End if End Function ***************************************
Den giver fejlen på denne linje: blnMailFunctionDone = sendJMailNew(strType, 1, "Svar_Laeses_Ikke@mydomain.dk", strSubject, strBody, strModtager, "", "", "", false)
Jeg kan Google mig frem til at det er fordi koden mener den har gang i noget endeløst.... Der er PT ca. 2.000 poster i mit array.
Hvad er der galt med funktionen?
PS: Jeg bør nok lige sige at "sendJMailNew" altid returnere TRUE. Det fortæller blot at funktionen er færdig, ikke om den aktuelle mail er sendt eller fejlet, men fortæller at serveren er klar til den næste mail.
Function sendManyMails(strType, arrRecipient, intPostInArray, strSubject, strBody, strCC, strBCC, strAttachment) If isArray(arrRecipient) Then numberOfPosts = UBound(arrRecipient) if intPostInArray > numberOfPosts then sendManyMails = true else strModtager = arrRecipient(intpostiarray) blnMailFunctionDone = false blnSuccess = false blnMailFunctionDone = sendJMailNew(strType, 1, "Svar_Laeses_Ikke@mydomain.dk", strSubject, strBody, strModtager, "", "", "", false) if blnMailFunctionDone then intPostInArray = intPostInArray + 1 if sendManyMails(strType, arrRecipient, intPostInArray, strSubject, strBody, strCC, strBCC, strAttachment) then sendManyMails = true end if end if strType = "" arrRecipient = null intPostInArray = 0 strSubject = "" strBody = "" sendManyMails = false end if End if End Function
Hmmm, tror det var en fucked up streng operation i mit mailscript, som fuckede det op når det blev kaldt flere hundere gange... Når den er rettet kan jeg nok godt leve med:
Function sendManyEMails(strType, csRecipient, strSubject, strBody, strCC, strBCC, strAttachment) arrRecipient = split(csRecipient,",") for i=0 to ubound(arrRecipient) blnMailFunctionDone = sendJMailNew(strType, 1, "Svar_Laeses_Ikke@mydomain.dk", strSubject, strBody, arrRecipient(i), strCC, strBCC, strAttachment, false) next End Function
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.