Problem med mail() funktionen i PHP

Permalänk

Problem med mail() funktionen i PHP

Hej!

Jag har lite problem med mail() funktionen. När jag fyllt i det som behövs i mitt formulär och klickar på knappen för att mailet ska skickas så står sidan och laddar i ca 1-2 minuter innan meddelandet om att mailet skickats kommer upp.

Efter det så kommer mailet på en gång. Servern är en ubuntu server med php5 apache2. Vad är det som kan orsaka denna dröjning?

Med vänlig hälsning,
lundahldaniel

Visa signatur

MacBook Pro
www.mcgaraget.org
Citera för garanterat svar!

Permalänk
Medlem

Nu vet jag inte om det något speciellt när man kör Linux, men i Windows så behöver man iallafall konfigurera SMTP-server/port i php.ini, (ligger i windowsmappen) kan det vara något sånt?

Visa signatur

Nintendomulator: Projektlogg
Main: Intel Core i5 2500k | Radeon 6950 2GB | Corsair Vengence 8GB | Intel SSD 120GB |
Server: MSI k8 Neo4 s939 | AMD 1800+ @ 2,5 GHz | Corsair 2 GB |
HTPC: Jetway NC81-LF (Mini-ITX) | 1TB 7200rpm | PC5300 2GB | AMD X2 4850e 2,5 GHz | 110w PicoPSU | Projektfilm

Permalänk
Skrivet av Jobbbin:

Nu vet jag inte om det något speciellt när man kör Linux, men i Windows så behöver man iallafall konfigurera SMTP-server/port i php.ini, (ligger i windowsmappen) kan det vara något sånt?

Jag har provat att ange SMTP server och porten, men det hjälpte inte. Jag provade även att ange sendmail_path men även det gjorde ingen skillnad.

Jag har verkligen ingen aning om vad det kan vara :S

Visa signatur

MacBook Pro
www.mcgaraget.org
Citera för garanterat svar!

Permalänk
Medlem

Prova att kolla i felloggen.

Den heter /var/log/apache2/error.log

//C

Permalänk
Skrivet av conio:

Prova att kolla i felloggen.

Den heter /var/log/apache2/error.log

//C

Där står ingenting som har med det att göra vad jag kan hitta. Så vad kan det vara? :S

Visa signatur

MacBook Pro
www.mcgaraget.org
Citera för garanterat svar!

Permalänk
Medlem

Kanske detta är något som är relevant (om du nu använder sendmail)
http://stackoverflow.com/questions/7578952/sending-mail-takes-long-time-in-localhost

Permalänk
Skrivet av materka:

Kanske detta är något som är relevant (om du nu använder sendmail)
http://stackoverflow.com/questions/7578952/sending-mail-takes-long-time-in-localhost

Underbart! Ett av svaren där fick mig att fundera. Jag pillade med egen DNS server ett tag och ändrade då vilken DNS servern skulle köra på. Efter ett tag lade jag ner DNSen men glömde då bort att ändra adressen till DNS. Så den försökte ju köra på en lokal DNS som inte fanns. Efter ändringen så försvann dröjningen men dock så kom inget mail.

Tog bort sendmail och installerade postfix vilket fixa biffen!

Det fungerade utan problem i några minuter men nu har det kommit ett nytt problem. Meddelandet att mailet har skickats kommer upp 2 gånger och det skickas 2 mail..

Så här ser koden ut:

$email = mysql_real_escape_string($_POST['email']); $recov = rand(77777,99999); $mail_body = "Hi! This email has been sent because you have requested a recovery of your password.\n\nIf you havn't, please ignore this message.\n\nIf you did request a password recovery, please follow this link:\n\nhttp://www.the-mines.tk?page=login&email=$email and enter this recoverycode: $recov\n\nBest regards,\nThe Mines Staff"; $header = "From: The Mines <donotreply@the-mines.tk>"; mail($email,"subject", $mail_body, $header); echo "<script language=\"javascript\">"; echo "alert('We have sent you an email with information on how to recover your password.')"; echo "</script>"; echo "<meta http-equiv=\"Refresh\" content=\"0; url=index.php\">";

Visa signatur

MacBook Pro
www.mcgaraget.org
Citera för garanterat svar!

Permalänk

Problemet löst! Lade från början all php kod efter </html>. Flyttade nu in den innanför <body> </body> så att teckenkodningen även gäller för php koden vilket löste mitt problem Tackar guttersnipe för länken som fick in mig på rätt tankar vid första problemet

Visa signatur

MacBook Pro
www.mcgaraget.org
Citera för garanterat svar!

Permalänk
Medlem

Härligt!
Det var så lite så, bara kul att kunna hjälpa till.