Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Formularz nie wysyła wiadomości
Forum PHP.pl > Forum > PHP
Kogoot
Witam!

Niedawno postanowiłem na swojej stronie umieścić formularz mailowy, który pozwalałby innym na przesyłanie wiadomości tylko pod wskazany (mój) adres mailowy. Skorzystałem z gotowego skryptu Contact Us.

Niby wszystko pięknie działa, po wysłaniu wiadomości pojawia się komunikat "Dziękujemy. Twoja wiadomość została wysłana." ale... Maile nie dochodzą do mojej skrzynki. Próbowałem oczywiście z kilkoma adresami, starałem się w miarę swoich (dość skromnych) możliwości przeanalizować skrypt w poszukiwaniu błędu, niestety niczego nie znalazłem i zwracam się z prośbą do was o pomoc...

config.php:

CODE

$login="*****";

$password="*****";

$contact1_title="Polemika";

$contact1_value="spotkaniapolemika@gmail.com";

$contact2_title="";

$contact2_value="";

$contact3_title="";

$contact3_value="";

$contact4_title="";

$contact4_value="";

$contact5_title="";

$contact5_value="";

$contact6_title="";

$contact6_value="";

$name=1;

$address=0;

$telephone=0;

$fax=0;

$name_req=1;

$address_req=0;

$telephone_req=0;

$fax_req=0;

$showIP=1;

$showUSER_AGENT=1;

$font_face_email="verdana";

$font_size_email="2";

$font_color_email="black";

$font_face_form="verdana";

$font_size_form="11";

$font_color_form="black";

?>


contact.php:

CODE



<?php include("config.php"); ?>
<style type="text/css">
input,textarea,td,tr,body{

font-family:;

font-size:;

color:;

};












include("config.php");



if(!empty($_POST["body"]))

{

$headers = "MIME-Version: 1.0\r\n";

$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

$headers .= "FROM: ".$_POST["email"]." \r\n";



$pre.="\n";

$pre.="===========SENDER'S DETAILS===========
\n";



if($_POST["name"]!="")

{

$pre.="Email from ".$_POST["name"].",
\n";

}

else

{

$pre.="Email from ".$_POST["email"].",
\n";

}



if($showIP==1) {$pre.="IP:".$_SERVER["REMOTE_ADDR"].",
\n";}

if($showUSER_AGENT==1) {$pre.="USER AGENT:".$HTTP_USER_AGENT."
\n";}

if($address==1) {$pre.="ADDRESS:".$_POST["address"]."
\n";}

if($telephone==1) {$pre.="TELEPHONE:".$_POST["telephone"]."
\n";}

if($fax==1) {$pre.="FAX:".$_POST["fax"]."
\n";}

$pre.="===========SENDER'S DETAILS===========
\n";



$body=ereg_replace("[\n]","
",$_POST["body"]);

$body=ereg_replace("[\\]","",$body);

$subject=ereg_replace("[\\]","",$_POST["subject"]);



mail($_POST["to"], $subject, $pre."
\n\n".$body."\n", $headers);

echo "

[b]Dziękujemy. Twoja wiadomość została wysłana. [/b]



Powrót
";

}

?>
Grzyw
Nie jestem w stanie znaleźć usterki, ale kiedyś mordując się z funkcją mail() posłuchałem dobrej rady i przerzuciłem sie na klasę PHPMailer. Ogromnie polecam.

Serwer pocztowy jest dobrze skonfigurowany na serwerze?
shark121
dwa razy dołączyłeś plik konfiguracyjny
Kod
<?php    include("config.php");    ?>
misiek172
podstawowe problemy przy mailach:

- złe nagłówki dlatego serwer pocztowy odrzuca wiadomość
- serwer pocztowy rozpoznaje ją jako SPAM
- serwer pocztowy nie lubi wiadomości HTML (jeżeli w takiej formie ją wysylasz)

Ja uważam, że w twoim wypadku będzie chodziło o nagłówki.
Kogoot
Staram się jeszcze coś zdziałaś z mail()... nic innego mi do głowy nie przychodzi.
Może bezpośrednio wpisać swój adres mejlowy zamiast odnośnika $_POST?
shark121
Kod
<?php require("config.php"); ?>

<style type="text/css">
input,textarea,td,tr,body {
     font-family:;
     font-size:;
     color:;
}
</style>

<?php

if(!empty($_POST["body"]) && !empty($_POST["subject"]) && !empty($_POST["adress"]) && !empty($_POST["telephone"]) && !empty($_POST["fax"])) {

     $email = "mojmail@adres.pl";

     $headers = "MIME-Version: 1.0\r\n";
     $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
     $headers .= "FROM: $_POST["email"] \r\n";

     $pre.="\n";
     $pre.="===========SENDER'S DETAILS===========\n";

     if(!empty($_POST["name"])) {
         $pre.="Email from $_POST["name"],\n";
     } else {
         $pre.="Email from $_POST["email"],\n";
     }

     if($showIP == 1) $pre.="IP: $_SERVER["REMOTE_ADDR"],\n";
     if($showUSER_AGENT == 1) $pre.="USER AGENT: $HTTP_USER_AGENT\n";
     if($address == 1) $pre.="ADDRESS: $_POST["address"],\n";
     if($telephone == 1) $pre.="TELEPHONE: $_POST["telephone"],\n";
     if($fax == 1) $pre.="FAX: $_POST["fax"]\n";

     $pre.="===========SENDER'S DETAILS===========\n";

     $body=ereg_replace("[\n]","",$_POST["body"]);
     $body=ereg_replace("[\\]","",$body);
     $subject=ereg_replace("[\\]","",$_POST["subject"]);

     $wiadomosc = $pre."\n\n".$body."\n";

     $wysylanie = mail($email, $subject, $wiadomosc, $headers);

     if($wysylanie) echo "<strong>Dziękujemy. Twoja wiadomość została wysłana.</strong>


Powrót";
} else {
     echo "Nieudało się wysłać formularza";
}

?>

zobacz tak
Kogoot
zmodyfikowałem w contact.php mail() do postaci:

mail("spotkaniapolemika@gmail.com", $subject, $pre."<br>\n\n".$body."\n", $headers);

i teraz działa. Dzięki wszystkim za rady!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.