Witam, jestem nowy na forum i nie jestem specjalistą w php więc proszę o wyrozumiałość. Do tej pory używałem serwera na którym działała funkcja mail i nie mialem problemów z formularzem. Teraz mam serwer na home.pl i tam funkcja mail jest zablokowana. Znalazłem w internecie wzór formularza który korzysta powinien korzystać z smtp, ale mimo wszystko przy probie wysyłki otrzymuję komunikat:
"Nie można wywołać funkcji mail(). Sprawdź konfigurację serwera. Błąd wysyłania: Nie można wywołać funkcji mail(). Sprawdź konfigurację serwera." Proszę o pomoc, poniżej zamieszczam skrypt pliku kontakt.php, proszę o pomoc, nie wiem gdzie jest błąd ... wygląda na to że gdzieś w poniższym kodzie zamiast smtp jest włączona funkcja mail, a według opisu powinien korzystać z smtp. Jeśli ktoś miałby inny formularz korzystający z smtp jestem zainteresowany nawet kupnem
<html>
<head>
<title>Przykładowy formularz kontaktowy</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script language="JavaScript" src="javavalid/gen_validatorv2.js" type="text/javascript"></script>
</head>
<body style="font-family: arial;">
<?php
// jesli formularz został zgłoszony - przetwarzamy go
if ($_POST['wyslij']) {
if ( !$_POST['tresc'] OR
!$_POST['podpis'] OR
!$_POST['email'] ) { echo "Błąd. Puste pola!"; break; }// coś poszło nie tak
$tresc = $_POST['tresc'];
$podpis = $_POST['podpis'];
$email = $_POST['email'];
$adresat = $_POST['adresat'];
// mozesz tu zdefiniowac adres na sztywno np $adresat = "zuzia@serwer342.pl";
// usun wtedy ponizsze sprawdzenie
$dozwolone_adresy = "info@xxx.pl";
if (strpos($dozwolone_adresy,$adresat)===false) { echo "Niedozwolony adresat! $adresat"; break; }
// utnij zbyt długą treść i podpis
if ( strlen($tresc) > 2000
) $tresc = substr($tresc, 0
, 2000
); if ( strlen($podpis) > 40
) $podpis = substr($podpis, 0
, 40
);
if(!preg_match('|^[_a-z0-9.-]*[a-z0-9]@[_a-z0-9.-]*[a-z0-9].[a-z]{2,3}$|e', $email)) { echo "Niepoprawny adres email!"; break; }
// koniec sprawdzania, wysylamy emaila
require_once('phpmailerx/class.phpmailer.php');
$mail = new PHPMailer();
$mail->IsSMTP(); // send via SMTP
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Host = "home.pl";
$mail->Port = 465;
$mail->Mailer= "serwer1521494.home.pl";
$mail->Username = "biuro@xxx.pl"; // SMTP username
$mail->Password = "xxxxxxx"; // SMTP password
$mail->AddReplyTo ($email, $podpis);
$mail->From = $email;
$mail->FromName = $podpis;
$mail->Subject = "Ze strony od: $podpis";
$mail->Body = $tresc;
$mail->WordWrap = 50;
$mail->AddAddress ($adresat);
// $mail->IsHTML (true);
$mail->SetLanguage("pl", "phpmailerx/language/");
$mail->CharSet = 'utf-8';
if(!$mail->Send())
{ echo "Błąd wysyłania: " . $mail->ErrorInfo; } else
{ echo "Wiadomość została wysłana. <a href=\"./kontakt.php\">Powrót do formularza</a>"; }
} // koniec if-a przetwarzajacego formularz
// jeśli nie zgłoszono jeszcze formularza - wyświetlamy go
else
{
?>
<form action="kontakt.php" method="post" name="formularz_kontaktowy">
<h2>Formularz kontaktowy</h2>
<br />
<label for="podpis">Podpis: </label>
<input id="podpis" type="text" name="podpis" /><br /><br />
<label for="email" >Email: </label>
<input id="email" type="text" name="email" /><br /><br />
<textarea style="width:260px; height: 160px; " name="tresc" ></textarea><br /><br />
<!-- Jeśli adresat ma być tylko jeden, usuń poniższe 4 linijki
i wpisz adresata na sztywno w kodzie na górze strony -->
Zapytanie dotyczy:<br />
<input type="radio" name="adresat" value="info@xxx.pl" checked="checked" />Wybor 1<br />
<input type="radio" name="adresat" value="info@xxx.pl" />Wybor 2<br />
<input type="radio" name="adresat" value="info@xxx.pl" />Wybor 3<br />
<input type="radio" name="adresat" value="info@xxx.pl" />Wybor 4<br />
<input type="radio" name="adresat" value="info@xxx.pl" />Wybor 5<br />
<br />
<input class="wysylacz" type="submit" name="wyslij" value="Wyślij" />
</form>
<script language="JavaScript">
var sprawdzacz = new Validator("formularz_kontaktowy");
sprawdzacz.addValidation("podpis","req","Wprowadź podpis");
sprawdzacz.addValidation("podpis","maxlen=40","Podpis nie może być dłuższy niż 40 znaków");
sprawdzacz.addValidation("email","req","Podaj adres e-mail w polu pod podpisem");
sprawdzacz.addValidation("email","maxlen=60","Błąd - adres e-mail dłuższy niż 60 znaków");
sprawdzacz.addValidation("email","email","Niepoprawny adres e-mail");
sprawdzacz.addValidation("tresc","maxlen=2000","Formularz nie przyjmuje wiadomości dłuższych niż 2000 znaków");
sprawdzacz.addValidation("tresc","req","Wprowadź treść zapytania");
</script>
<?php } ?>
</body>
</html>
Ten post edytował lukaszm89 13.04.2015, 18:20:00