07. september 2006 - 14:08Der er
12 kommentarer og 1 løsning
JMail fejl: jmail.SMTPMail error 8000f f f f - Hjælp
Hej
Jeg har lavet en side, hvorfra man kan udsende nyhedsmails til nogle mailing lister. Den første liste jeg har prøvet at sende til er på ca. 500 stk. Alligevel er der 2 mailadresser der får følgende fejl til at optså:
jmail.SMTPMail error '8000ffff'
The message was undeliverable. All servers failed to receive the message
/Framework/Admin/Marketing/E-mails/Default.asp, line 181
Jeg har udskrevet e-mail addressen lige inden de bliver sendt (omringet af ' så man kan se evt. blank-tegn) - her er den ene der forårsager fejlen:
strEmail : 'hellefriendtex@ofirmail.dk'
Kan nogen fortælle mig hvorfor den ikke skulle være lige så god som alle andre?
Jeg har sendt en mail til den adresse fra min almindelige mail: jensk@domænenavn.dk
Afsenderen på JMail'en er no-reply@domænenavn.dk så jeg kan ikke se det skulle være et problem. Vi har ikke benyttet systemet før så jeg tror ikke de har spærret for os (det er også kun folk der ønsker at modtage den mail og det er nemt for dem at framelde sig igen).
Det er godt nok de eneste 2 mail adresser fra hhv ofirmail.dk og weebspeed.dk, men jeg synes ikke man kan konkludere at de domæner har blokeret for os ud fra så relativt få mailadresser.
Der er flere grunde til at mailen bliver afvist. Et SPAM-filter kunne også være et bud.
Første trin er altid at finde ud af om mailadr overhoved eksistere. Dernæst om de har et SPAM filter (ring til dem). De første 2 ting der skal være opfyldt for at man ikke bliver snuppet af et SPAM filter er at have få modtagere på mailen og afsender IP i headeren:
1. Send ikke EN mail med 500 modtagere. Send 500 mails med EN modtager. 2. Tilføj IP til mailheaderen. Det gøres med en kode ala (forskellig fra mailkomponent): mail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
Dit første punkt havde jeg taget højde for, det var derfor jeg opdagede hvilke 2 mails det var galt med. Jeg vil prøve det med IP'en i morgen, hvis det virker så læg et svar og du får pointene.
Det er bare lidt problematisk at JMail genererer en fejl bare fordi den ikke kan levere til modtageren. Jeg troede egentlig bare den leverede dem til mailserveren og lod mailserveren om at få den frem til modtageren.
Jeg har før oplevet problemer med aol.de, som jeg fandt ud af skyldtes at det domæne jeg skriver fra var betragtet som spam af dem. Jeg snakkede så med dem og fandt ud af at alt hvad der skulle til var at en enkelt bruger meldte det som spam. Det kunne f.eks være en der ikke var interesseret mere, som istedet for at afmelde sig havde anmeldt os. Og det er ikke nemt at komme af en spam-liste igen.
Beklager det sene svar, men har først haft tid til at arbejde videre med det i dag.
Det ændrede desværre ingenting, så udsendeslen går stadig i stå ved de 2 nævnte e-mails. Er der nogen der ved om man kan undgå JMail kommer med den fejl og bare kører videre? Det er jo lidt et problem hvis du vil sende til flere tusinde og 10 af dem forårsager en fejl. Så skal man til at køre udsendelsen 10 gange og lave test udskrifter så man kan fjerne de e-mails der skaber problemerne.
Du kan smide et try/catch script omkring (ser lidt anderledes ud i ASP)
on error resume next '<-- Starter fejlhåndtering ...DinSendKode... if err.number <> 0 then '<-- Tjek for fejl response.write "kunne ikke sende denne mail" end if on error goto 0 '<-- Sæt fejlhåndtering tilbage til default
... Min komentar "ser lidt anderledes ud i ASP" kan vist misforståes. Den viste kode er ASP. Men i andre sprog hedder koden ofte try/catch. Her er et eks i java script:
try{ alert(documenttt.getElementById('test').value) } catch(e){alert("der er sket en fejl: "+ e)}
Som jeg prøvede at fortælle (meget dårligt), har ASP ikke en kode som hedder try/catch. Men det er det som sker via "on error.." scriptetet jeg lavede i post 08:38:57.
on error resume next <- svare til -> try if err.number <> 0 then <- svare til -> catch
et try/catch script i ASP ser altså sådan ud: on error resume next ...Kode der skal afprøves... if err.number <> 0 then response.write "Der skete en fejl: " err.number &" "& err.description end if on error goto 0
"On error goto 0" resetter fejlhåndtering til default (stop ved fejl)
Der findes kun de to kald (Resume Next og Goto 0) i ASP. I gammel tid kunne man hoppe til en linje eller funktion, men det er pillet ud i VBScript. Som de skriver i første link kan man kun starter eller slutter fejlhåndtering med de to linjer.
Takker, det kan jeg bruge til rigtig meget. Har længe været på ugkig efter noget fejlhåndtering i asp, men forgæves. Har åbenbart ikke søgt godt nok, for kunne da se der var folk herinde der har efterspurgt det før.
MSDN er desuden stedet at finde alle informationer om ASP, da det jo er dem der har lavet det. De har også kode eks til næsten alle siderne.
Jeg brugte, og bruger stadig, specielt meget Constance, Functions og Statements menupunkterne da jeg begyndte på ASP. Og senere "Script Runtime >> FileSystemObject Basic" til at læse/skrive filer og mapper.
Synes godt om
Ny brugerNybegynder
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.