Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Apr 2009

PhP Mail system grej

Tjenna!

Jag håller på att skapa en hemsida till en polare, och han skulle gärna vilja ha en kontakt filk.
Där försöker jag fixa ett litet mail system eller vad jag nu ska kalla de. Och jag har suttit och kollat och kollat men jag kan inte hitta felet.

Här är koden för html docet:

Citat:

<form method="post" action="php/kontakt.php">
Email: <input name="email" type="text"><p>
Message:<br>
<textarea name="message" rows="15" cols="40"></textarea><br>
<input type="submit">
</form>

Här är koden från PhP docet:

Citat:

<?PHP
$to = "filiptheman@yahoo.se";
$subject = "Contact Us";
$email = $_POST['email'];
$message = $_POST['message'];
$headers = "From: " . $email;

if (mail($to, $subject, $message, $headers)) {

echo "Message successfully sent!";

} else {

echo "Message delivery failed...";
}

?>

Den är väldigt simpel, för att jag är rätt noob. Men jag kan inte lyckas hitta felet o.O" Vad ännen jag har testat att göra så säger den till mig "Message deilvery failed..."

Tackar för hjälpen på förhand!

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Jan 2004

Vart körs scriptet?

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Apr 2009

För att jag är en så stor noob... Hur menar du ?

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Jan 2004

Körs det på egen server eller webhotell? Vilket i så fall?

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Apr 2009

Jaha, just nu körs det på egen server / min dator. Med Apache2 på Ubuntu.

Trädvy Permalänk
Medlem
Plats
Kristianstad
Registrerad
Apr 2009

Har du konfat sendmail korrekt?

Trädvy Permalänk
Medlem
Plats
Östersund
Registrerad
Aug 2007

har du kollat skräpkorgen ?

mobo Asus M4A88TD-M EVO/USB3 cpu 1100T kylare Noctua NH-D14
gpu RX 460 passive ram 16GB DDR3 1600MHz ssd Samsung 850 EVO 250GB
psu Corsair AX 850 skärmar 3 * 40" NEC P401

Trädvy Permalänk
Medlem
Registrerad
Okt 2002

Bara tittat jätte snabbt, men det här ser ju väldigt konstigt ut:

if (mail($to, $subject, $message, $headers)) { echo "Message successfully sent!"; }

Borde det inte vara:

if (isset(mail($to, $subject, $message, $headers))) { echo "Message successfully sent!"; }

Du skickar ju fortfarande inte iväg något e-mail, men "Message successfully sent!" skrivs ut, förutsatt att all annan kod är korrekt.
Antar att du har mer PHP-kod?

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jan 2007
Citat:

Ursprungligen inskrivet av mel0dy
isset() på något en funktion returnerar

Det mail() returnerar kommer alltid att vara icke-null och därför kommer det göra att meddelandet visas om man använder isset().

Problemet ligger troligtvis i att sendmail eller motsvarande inte konfigurerats ordentligt.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Jan 2004

sudo apt-get install postfix
Och sen beroende på vilken ISP du har så får du köra "smart hosts" för att relaya via din ISPs mailservrar om dom spärrar port 25 utåt.