Avatar billede mekaniker Nybegynder
19. marts 2004 - 09:32 Der er 7 kommentarer og
1 løsning

Timeout i mailfunction

Jeg har denne function til at afsende en mail fra et site, den sender igennem min egen mailserver.

Emailen bliver afsendt, jeg får jeg en timeout fra scriptet, hvorfor..?

function sendmail($txt,$side)   
    {
    $SQL = mysql_query("select firmanavn, email from config WHERE id=". 1);
    $row = mysql_fetch_array($SQL);

    $firmanavn = $row["firmanavn"];
    $email = $row["email"];
    $txt = tagster_format($txt);
    $txt = nl2br($txt);
   
    $headers = "MIME-Version: 1.0\n";
      $headers = $headers."Content-type: text/html; charset=iso-8859-1\n";
      $headers = $headers."X-Priority: 3\n";
      $headers = $headers."X-MSMail-Priority: Normal\n";
      $headers = $headers."X-Mailer: PHP/" . phpversion()."\n";
      $headers = $headers."From: \"".$firmanavn."\" <".$email.">\n";
     
    $fejl = mail("\"".$firmanavn."\" <".$email.">","Henvendelse fra website", $txt, $headers);
   
    echo $fejl;
    }
Avatar billede muddi Praktikant
19. marts 2004 - 10:00 #1
Muligvis fordi du overskider de 30 sekunder et script har lov til at køre før det bliver stoppet af serveren.
Kig eventuelt på
http://dk.php.net/set_time_limit

Med phpinfo() kan du se hvor lang tid dit script har ved at kigge på den værdi der hedder max_execution_time. Den står standard til 30 (sekunder).
Avatar billede mora Nybegynder
19. marts 2004 - 10:01 #2
Sikker på det er denne function der laver problemer?
Har lige tested den, virker fint (har dog ikke tagster_format metoden)

Sender du mails fra en while loop eller bare en enkelt ?
Avatar billede mekaniker Nybegynder
19. marts 2004 - 10:21 #3
Jeg sender bare en enkelt mail

Det kan godt være at jeg bare skal sætte tiden op, men hvorfor tager det så lang tid, når mailserveren og webserveren er på samme maskine.

En anden ting jeg er lidt i tvivl om, er hvordan min php.ini skal se ud.
Det er en windows server 2003, og i php.ini har jeg skevet mail.[domain].dk som SMTP server, men skal den hedde det.? er det ikke nok at skrive localhost, eller giver dette nogle sikkerheds problemer.

Der er også angivet en "From" email adresse i php.ini , denne har jeg sat til info@[domain].dk som jeg selvfølgeli har oprettet på mailserveren.
men hvis jeg remmer denne linie ud, får jeg en meddelelse om at den ikke er sat i php.ini eller i headeren i scriptet, og det er den da...? så er der en fejl i scriptet...?
Avatar billede muddi Praktikant
19. marts 2004 - 10:52 #4
Du kan godt bruge localhost, og din From email i php.ini kan du sætte til hvad som helst, bare den er sat.
Hvis det kun er en mail der skal sendes, så er der noget galt, hvis det tager mere end de 30 sekunder
Tænker lige over hvad det kan være ...
Avatar billede mekaniker Nybegynder
19. marts 2004 - 11:19 #5
I min mailserver har jeg under "Relaying from:" skrevet følgende:
10.0.0.*;xxx.xxx.xxx.xxx

10.0.0.* er mit lokalnet
xxx.xxx.xxx.xxx er min faste IP udadtil
Avatar billede mekaniker Nybegynder
19. marts 2004 - 13:08 #6
Jeg har prøvet at sætte en time_limit på 50 og dette fik det til at virke.
Er det så bare min mailserver som er usandsynlig sløv....:-(
Avatar billede muddi Praktikant
19. marts 2004 - 13:09 #7
Ja det må det være :o\
Avatar billede mekaniker Nybegynder
19. marts 2004 - 16:43 #8
Tak for hjælpen.
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