Permalänk
Medlem

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!

Permalänk
Medlem

Vart körs scriptet?

Permalänk
Medlem

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

Permalänk
Medlem

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

Permalänk
Medlem

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

Permalänk
Medlem

Har du konfat sendmail korrekt?

Permalänk
Medlem

har du kollat skräpkorgen ?

Visa signatur

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

Permalänk

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?

Permalänk
Medlem
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.

Permalänk
Medlem

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.