Avatar billede leif Seniormester
03. marts 2005 - 18:17 Der er 9 kommentarer og
2 løsninger

Kontrollere Email adresse

Hej,

Vil det være muligt at lave et script som lave en kontrol på om en angiven email adresse kan leveres ?

Fra
Leif
Avatar billede googolplex Novice
03. marts 2005 - 18:19 #1
Avatar billede leif Seniormester
03. marts 2005 - 18:25 #2
Ja, det er jo godt alt sammen, men den har rent faktisk lige sagt passed til en mail adresse hvor der findes et MX record men serveren kender ikke domænet !
Avatar billede coderdk Praktikant
04. marts 2005 - 02:18 #3
Ikke forstået, der findes en MX-record, men serveren kender ikke domænet?!
Avatar billede leif Seniormester
04. marts 2005 - 09:06 #4
Korrekt ! (Det er et af mine test domæner)
Avatar billede coderdk Praktikant
04. marts 2005 - 09:15 #5
Jeg forstår det stadig ikke, du har en MX-record som ikke kan resolves eller hvad?
Avatar billede leif Seniormester
04. marts 2005 - 09:50 #6
Nej, nej.

Har domæne domæne.dk som peger på mail.domæne.dk som peger på IP 111.222.333.444, men serveren på 111.222.333.444 vil afvise emailen hvis den sendes, da domænet ikke endnu er oprettet på serveren !
Avatar billede coderdk Praktikant
04. marts 2005 - 09:55 #7
Det kan være at din mailserver accepterer indkomne mails fra domæner den ikke kender, og først bagefter sender en bounce - Det er i hvert tilfælde normalt at hvis du sender en mail til en bruger der ikke eksisterer på det domæne, siger mailserveren stadig OK, men bouncer bagefter...
Avatar billede leif Seniormester
04. marts 2005 - 10:45 #8
Så den bedste løsning er den fra ljweb.com ?
Avatar billede coderdk Praktikant
04. marts 2005 - 11:00 #9
Tjah, personligt synes jeg den er overkill, han bruger VRFY som alligevel aldrig kan regnes med, hvis mailserverne er sat ordentligt op, jeg bruger min egen:

    function isValidEmail($address) 
    { 
        $address = trim($address);
        list(,$host) = split('@',$address);
        if (!preg_match('/^[-!#$%&\'*+\\.\/0-9=?A-Z^_`{|}~]+' . // username
            '@' .                                  // 'at'
            '([-0-9A-Z]+\.)+' .                    // domain name(s)
            '([0-9A-Z]){1,6}\.?$/i',                // tld
            $address)) 
        {
            if (preg_match('/^\[(.*)\]$/',$host,$regs))
            {
                $ip = explode('.',$regs[1]);
                $is_ip = 1;
                foreach ($ip as $byte)
                {
                    if (!is_numeric($byte))
                    {
                        $is_ip = 0;
                        break;
                    }
                }
                if ($is_ip)
                {
                    return true;
                }
            }
            return false;
        }
        $host .= '.'; // DNS style address
        return (getmxrr($host,$mxrecords) || checkdnsrr($host,'ANY'));
    } 

Den returnerer sand hvis den er velformet, og hvis der findes en DNS-record, faktisk ser det ud til at man kan undvære getmxrr, og bare nøjes med checkdnsrr...
Avatar billede leif Seniormester
05. marts 2005 - 15:07 #10
Har ikke lige testet din coderdk, men vil du have lidt point for scriptet ?

Men lige en ting, jeg kan se du bruger function ?

Er det fordi jeg kan nøjes med at inkludere den i toppen eller hvordan ?
Avatar billede coderdk Praktikant
05. marts 2005 - 15:15 #11
Tjah, giv hvad du lyster ;)

Ja, du kan også smide den i en fil og include den hvor du skal bruge den :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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