Avatar billede bacce.dk Nybegynder
14. januar 2006 - 14:52 Der er 8 kommentarer og
1 løsning

problem med mail()

Hejsa

Jeg har et domain hvor der ret ofte skal sendes en mail til brugeren. Til dette bruger jeg mail()

det har nu også altid virket ok, men jeg kan se at det nu sker meget ofte at brugeren IKKE modtager sin mail, hvilket er rimelig problematisk, da det er vigtige oplysninger der står skrevet i disse mails.

mit gæt er at diverse mail servere ude i byen sorterer disse mails fra i spam filteret eller lig.n fordi visse kriterier ikke opfyldes ?

i så fald, hvad kan jeg gøre for at optimere dette ???

jeg sender den blot med modtager, afsender, replay to, og message...

Nogen forslag ?
Avatar billede jens_klinting Nybegynder
14. januar 2006 - 15:17 #1
Er der subject på? Visse filtre vil sikkert opfatte mails uden subject som spam.
Avatar billede bacce.dk Nybegynder
14. januar 2006 - 15:23 #2
Ja der er subject på.... sletter personligt også alle mails uden, når jeg modtager dem.... anser dem også for spam, og det er det oftest også.
Avatar billede blanko Nybegynder
14. januar 2006 - 16:40 #3
Jeg har fået samme problem. Jeg har prøvet at tjekke mail's ved denne funktion:

/*
    ** Function: verifyEmail
    ** Input: STRING address, REFERENCE error
    ** Output: BOOLEAN
    ** Description: Attempts to verify an email address by
    ** contacting a mail exchanger.  Registered mail
    ** exchangers are requested from the domain controler first,
    ** then the exact domain itself.  The error argument will
    ** contain relevant text if the address could not be
    ** verified.
    */

    function verifyEmail($address, &$error)
    {
        global $SERVER_NAME;

        list($user, $domain) = split("@", $address, 2);
       
        //make sure the domain has a mail exchanger
        if(checkdnsrr($domain, "MX"))
        {
            //get mail exchanger records
            if(!getmxrr($domain, $mxhost, $mxweight))
            {
                $error = "Could not retrieve mail exchangers!<BR>\n";
                return(FALSE);
            }
        }
        else
        {
            //if no mail exchanger, maybe the host itself
            //will accept mail
            $mxhost[] = $domain;
            $mxweight[] = 1;
        }       

        //create sorted array of hosts
        for($i = 0; $i < count($mxhost); $i++)
        {
            $weighted_host[($mxweight[$i])] = $mxhost[$i];
        }
        ksort($weighted_host);

        //loop over each host       
        foreach($weighted_host as $host)
        {
            //connect to host on SMTP port
            if(!($fp = fsockopen($host, 25)))
            {
                //couldn't connect to this host, but
                //the next might work
                continue;
            }
   

            /*
            ** skip over 220 messages
            ** give up if no response for 10 seconds
            */
            set_socket_blocking($fp, FALSE);
           
            $stopTime = time() + 10;
            $gotResponse = FALSE;
                       
            while(TRUE)
            {
                //try to get a line from mail server
                $line = fgets($fp, 1024);

                if(substr($line, 0, 3) == "220")
                {
                    //reset timer
                    $stopTime = time() + 10;
                    $gotResponse = TRUE;
                }
                elseif(($line == "") AND ($gotResponse))
                {
                    break;
                }
                elseif(time() > $stopTime)
                {
                    break;
                }
            }

            if(!$gotResponse)
            {
                //this host was unresponsive, but
                //maybe the next will be better
                continue;
            }

            set_socket_blocking ($fp, TRUE);

            //sign in
            fputs($fp, "HELO $SERVER_NAME\r\n");
            fgets($fp, 1024);

            //set from
            fputs($fp, "MAIL FROM: <info@$domain>\r\n");
            fgets($fp, 1024);

            //try address
            fputs($fp, "RCPT TO: <$address>\r\n");               
            $line = fgets($fp, 1024);

            //close connection
            fputs($fp, "QUIT\r\n");
            fclose($fp);

            if(substr($line, 0, 3) != "250")
            {
                //mail server doesn't recognize
                //this address, so it must be bad
                $error = $line;
                return(FALSE);
            }
            else
            {
                //address recognized
                return(TRUE);
            }
        }
       
        $error = "Unable to reach a mail exchanger!";
        return(FALSE);
    }

Og får denne fejl:
Error: Unable to reach a mail exchanger!

Aner pt ikke hvad jeg skal gøre.
Avatar billede blanko Nybegynder
15. januar 2006 - 13:29 #4
Jeg har prøvet at ændre på tegn osv i subject. Men det ændrer intet. jeg kan godt sende mails fra samme mailadresse fra outlook, og vi et webmail script.

Jeg ved ikke om denne information, gør at nogen kan gennemskue problemet ?
Avatar billede blanko Nybegynder
16. januar 2006 - 07:12 #5
Har du site liggende på et web-hotel ?
Isåfald, hvilket ?
Avatar billede bacce.dk Nybegynder
16. januar 2006 - 20:46 #6
Nej det er egne servere... jeg tror dog også jeg har fundet fejlen... problemet var egentlig ikke mine headers, men at serveren ikke udsendte korrekte oplysninger... jeg har i hvert faldet fået det til at virke de steder jeg har testet det på.
Avatar billede blanko Nybegynder
18. januar 2006 - 16:51 #7
Hej. Hvad mere præcist er det for nogle oplysninger, du manglede ?
Jeg har satdig problemer.
Avatar billede bacce.dk Nybegynder
21. januar 2006 - 12:03 #8
Jeg havde sat en postfix op til kun at tage sig af afsendelsen af mails fra php via sendmail patch denne server sendte ikke et korrekt domain ud og derfor blev mails afvist hos bla. jubii.dk og mange webhoteller.
Avatar billede bacce.dk Nybegynder
22. januar 2006 - 13:40 #9
hmm det kunne være at jeg skulle lukke... poblemet er som sagt løst.
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