Avatar billede bajerfar Nybegynder
23. februar 2007 - 11:08 Der er 7 kommentarer og
1 løsning

Domæne-test

Hej Eksperter
Jeg har lavet et lille modul, hvor man kan sende et nyhedsbrev ud til en mailing-liste. Dette virker sådan set helt fint, men der opstår et problem, hvis den tilmeldte email-adresse, eller rettere domænet, ikke eksisterer. Er dette tilfældet, fejler mit script ved den forkerte adresse og resten af mine email-adresser modtager ikke nyhedsbrevet. Herefter jeg er nødsaget til at slettte den fejlede adresse og sende nyhedsbrevet én gang til. kikset!

Derfor: Findes der en nem måde at tjekke om domænet eksisterer, inden email'en sendes?

Håber I kan hjælpe, da dette lille problem faktisk er et stort problem!

Lars
Avatar billede cpufan Juniormester
23. februar 2007 - 11:28 #1
on error resume next

får scriptet til at fortsætte, selvom mailen fejler.


men det retter jo ikke problemet.

men den er uundværlig alligevel.
Avatar billede fennec Nybegynder
23. februar 2007 - 11:40 #2
Du kan jo få den til at slette selv, hvis den fejler:

while EtEllerAndet
  on error resume next '<-- Start fejlbehandling
  err.clear '<-- nuldstil hvis loopet fejlede tidligere
  ...Din kode..
  if err.code <> 0 then
    'Der skete en fejl
    if err.code = 1234 then '<-- Fang kun hvis den rigtige fejl
      conn.execute("delete from ...")
    end if
  end if
  on error goto 0 '<-- Reset fejlbehandling til standard
wend
Avatar billede bajerfar Nybegynder
23. februar 2007 - 11:54 #3
To rigtigt anvendelige svar. Har ikke lige mulighed for at prøve svarene af lige nu, men kigger på det i løbet af weekenden. Tusind tak!

Vender tilbage :-)
Avatar billede bajerfar Nybegynder
26. februar 2007 - 20:09 #4
fennec-> on error resume next virker perfekt, men kan du evt. forklare dit eksempel? Hvad returnerer err.code? Hvorfor if err.code = 1234 og on error goto 0?
Avatar billede fennec Nybegynder
27. februar 2007 - 08:36 #5
Alle fejl returnere en fejlkode, som bliver opsamlet af err.code. Hvis err.code er forskellig fra 0 er der sket en fejl. Fejlkoden kan være både positive og negative tal.

Du få her en specifik fejl, og den skal du have fundet ud af hvad nummer har, så du kan fange den. Det gør du helt enkelt ved at køre scriptet så du ved det fejler også udskrive err.code til skærmen. Dit mailscrip kan jo generere andre fejl (hvis mailserveren f.eks er nede) og derfor skal du kun slette fra databasen, hvis du får den specifikke fejl. Erstat derfor 1234 med den rigtige fejlkode. Jeg ved jo ikke hvilken fejlkode du får, hvorfor jeg bare skrev 1234.

Du kan desuden også bruge err.Description til at få fejlteksten, så du kan skrive den ud også.

I det rigtige VB sprog kunne man definere hvilken linje man skulle hoppe til hvis der skete en fejl, men det er ikke med i VBScript (ASP). I ASP har vi kun de to kald "on error goto next" og "on error goto 0". Den første starter fejlbehandling og den sidste sætter den tilbage til standard (stop ved fejl)
Avatar billede bajerfar Nybegynder
27. februar 2007 - 09:18 #6
Tak for det udførlige svar. Nu forstår jeg dit kode-eksempel langt bedre.
Læg et svar og endnu en gang tak.
Avatar billede fennec Nybegynder
27. februar 2007 - 14:44 #7
.o) <-- One Eyed Jack
Avatar billede bajerfar Nybegynder
27. februar 2007 - 15:35 #8
:-)
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