Avatar billede andersasp Nybegynder
09. februar 2005 - 20:24 Der er 6 kommentarer og
1 løsning

Udvælge alle e-mails i et tekstfelt

Hejsa eksperter!

Jeg her en funktion hvor jeg gemmer kontakt personer i en database. Men da en del af mine kontakter havde flere mails lavede dette flet om til en tekst boks så man kunne skrive flere mails.. Når jeg så skulle se dem, brugte jeg nedenstående funktion til at gøre dem til klikbare links!

Dette virker helt perfekt, men nu vil jeg dog gerne have alle disse mails ind i en mailingliste, men da det er tekstfelter med 1-mange mails i ét felt kan man jo ikke bare lave et normalt loop????  Hvordan kan man sende til alle mails i dette felt???

<%
Function LinkString(strInput)
dim arrPattern, arrReplaceString, Rx, intIndex
  arrPattern = Array("([\w\._-]+@[\w\._-]+\.[A-Za-z]{2,4}\S*)", _
  "(http|https|ftp)(:\/\/[\w\._-]+\.[\w\._-]+\S*)", _
  "(^|[^\/])(www[^\.\s]?\.[\w\._-]+\.[A-Za-z]{2,4}\S*)")
  arrReplaceString = Array(" <a href='mailto:$1'>$1</a> ", _
  " <a href='$1$2' target='_blank'>$1$2</a> ", _
  " <a href='http://$2' target='_blank'>$2</a> ")
  Set Rx = New RegExp
  Rx.Global = True
  Rx.IgnoreCase = True
  For intIndex = 0 To UBound(arrPattern)
    Rx.Pattern = arrPattern(intIndex)
    strInput = Rx.Replace(strInput, arrReplaceString(intIndex))
  Next
  Set Rx = Nothing
  LinkString = strInput
End Function
%>
Avatar billede eagleeye Praktikant
09. februar 2005 - 22:33 #1
Hvis du laver funtionen sådan den ligger dem ind i en streng og skiller hver email adresse med et tegn som ";" ("eamil1;email2;...;emailn") så kan du lave et loop som looper igennem et array med email adresser:


emaillist = LinkString(inputstring)
emailArr = Split(emaillist,";")
for i = 0 to ubound(emailArr)
  emailAdresse = emailArr(i)

  'Send mailen her

next
Avatar billede andersasp Nybegynder
10. februar 2005 - 11:51 #2
Hej!

Nu har jeg lagt den ind i mailinglisten således:

Jeg får dog nu en fejl nederst i Loop????

Microsoft VBScript compilation error '800a040e'

'loop' without 'do'

<%

on error resume next
  Do While Not kunderne.EOF
 
    emaillist = LinkString(clienterne.Fields.Item("Kemail"))
    emailArr = Split(emaillist,";")
    for i = 0 to ubound(emailArr)
  emailAdresse = emailArr(i)

  soverskrift = request.form("overskrift")
  standardtext = request.form("beskrivelse")
 
 
  Dim ThisURL
  ThisURL = "http://" & Request.ServerVariables("SERVER_NAME") & _
  Request.ServerVariables("PATH_INFO")
  ThisURL = "http://www.smz.dk"
 
  Set JMail          = Server.CreateObject("JMail.SMTPMail")
  JMail.ServerAddress = "localhost"
  JMail.Sender        = "info@smz.dk"
  JMail.SenderName      = "Smz"
  JMail.ContentType  = "text/plain"
  JMail.Subject      = soverskrift
  JMail.AddRecipient  =  emailAdresse
  JMail.Priority      = 3
  JMail.AddHeader    "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
 
  JMail.Body = JMail.Body & soverskrift & VbCrLf
  JMail.Body = JMail.Body & "--------------------------------------------------------" & VbCrLf & VbCrLf 
  JMail.Body = JMail.Body & standardtext  & VbCrLf & VbCrLf
  JMail.Body = JMail.Body & "Besøg os online på adressen: " & ThisURL & VbCrLf & VbCrLf

  JMail.Execute
 
  Set JMail = Nothing
 
  kunderne.MoveNext
  Loop
      response.redirect("mailsent.asp")
%>
Avatar billede andersasp Nybegynder
10. februar 2005 - 15:07 #3
Det den udskriver er jo også hele hyperlinket!!  hvordan kan man få dette fjernet??

arrReplaceString = Array(" <a href='mailto:$1'>$1</a> ", _
  " <a href='$1$2' target='_blank'>$1$2</a> ", _
  " <a href='http://$2' target='_blank'>$2</a> ")
Avatar billede eagleeye Praktikant
10. februar 2005 - 16:59 #4
Prøv at rette funktionen til dette her hedder funktionen findEmail:


Function findEmail(strInput)
  dim sPattern, Rx, Match, Matches, RetStr
  sPattern = "([\w\._-]+@[\w\._-]+\.[A-Za-z]{2,4}\S*)"
  Set Rx = New RegExp
  Rx.Global = True
  Rx.IgnoreCase = True
  Rx.Pattern  = sPattern
  Set Matches = Rx.Execute(strInput)
  For Each Match in Matches 
    RetStr = RetStr & ";" & Match.Value
  Next
  Set Rx = Nothing
  RetStr = Mid(RetStr,2) 'Fjerner første ;
  findEmail = RetStr
End Function
Avatar billede andersasp Nybegynder
11. februar 2005 - 08:57 #5
Nu virker det!  tusinde tak!!
Avatar billede eagleeye Praktikant
11. februar 2005 - 15:40 #6
Ok så får du et svar fra mig ;)
Avatar billede andersasp Nybegynder
23. maj 2005 - 12:19 #7
Undskyld det har taget så lang tid!!
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester