Formularz Kontaktowy - Problem wysyłania

Witajcie :wink:

Wiem że generalnie powinienem z tym problemem pisać do usługodawcy home.pl, lecz problem lezy po stronie kodu. Otóż Home wprowadziło sobie antyspam, od zawsze korzystam z gotowca scriptu do wysyłania formularza ze strony www, lecz od momentu wprowadzenia antyspamu zwyczajnie padł. Ich forum się wystawiło, a ja kombinowałem na miliardy sposobów i dalej kaplica. Co może być nie tak w tym kodzie że ich system go blokuje.

<?php
$field_name = $_POST['cf-name'];
$field_email = $_POST['cf-email'];
$field_message = $_POST['cf-message'];
$mail_to = 'YOUR_EMAIL';
$subject = 'Message from a site visitor '.$field_name;
$body_message = 'From: '.$field_name."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Message: '.$field_message;
$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";
$mail_status = mail($mail_to, $subject, $body_message, $headers);
if ($mail_status) { ?>
<script language="javascript" type="text/javascript">
alert('Message successfully sent.');
window.location = 'URL_TO_OPEN_AFTER_SUBMIT';
</script>
<?php
}
else { ?>
<script language="javascript" type="text/javascript">
alert('Message failed.');
window.location = 'URL_TO_OPEN_AFTER_SUBMIT';
</script>
<?php
}
?>

Kod jak kod, wygląda ok. Musi działać, ale na home wszystko jest możliwe. Wątpię, że się z nimi dogadasz, prościej zmienić usługodawcę. Problem leży po ich stronie dokładnie w konfiguracji serwera.

Właśnie w tym problem, ze mam u nich kilka hostingów, więc zmiana odpada.

Z tego co wyczytałem ze szczątkowych danych (Bo oczywiście brak klarownej odpowiedzi, tylko zapytania na forum, gdzie przerabiają kod mogę wywnioskować że chodzi o fakt konieczności identyfikacji maila wysyłającego i odbierającego, strona sama z siebie nie może wysyłać bez identyfikacji, lecz ni w ząb nie jestem w stanie przekształcić tego kodu pod ich wymogi.

Podam przykład po innym kodzie i cytacie z ich forum.

ktoś napisał z problemem i wkleił kod

`$to  = 'kontakt@krystiankobus.pl';
$subject = $_POST['subject'];
$message = $_POST['message'];
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'From: '. $_POST['username'].' <'.$_POST['email'].'>' . "\r\n";
mail($to, $subject, $message, $headers,"-f odbior@krystiankobus.pl");
header("Location: http://www.krystiankobus.pl"); 

Po czym ich expert odesłał zwrotkę

$to  = 'kontakt@krystiankobus.pl';
$subject = $_POST['subject'];
$message = $_POST['message'];
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'From: krystiankobus.pl &lt;odbior@krystiankobus.pl&gt;' . "\r\n";
$headers .= 'Reply-To: '. $_POST['email'] . "\r\n";
mail($to, $subject, $message, $headers);
header("Location: http://www.krystiankobus.pl");

z nawiązką że dane nadawcy wiadomości warto przesłać w zmiennej $message. i to już za wiele na moją głowe

Ja nawet nie wnikam. Home jak zwykle sobie coś wymyśli i oczekuje, że się wszyscy do nich dostosują.
Na podstawie tego co oni zaproponowali to wydaje mi się, że powinieneś w swoim kodzie zmienić tą linijkę:

$headers = 'From: '.$field_email."\r\n";

i podać w niej swoje dane, ale skąd te dane wziąć to już nie pomogę. Dziwne trochę, że uwierzytelniają w taki sposób wysyłkę maili.

Reszta Twojego kodu raczej zgodna z tym co zmienili i napisali by stosować.

Dobra, udało się. Dla potomnych.

W linijce
$headers = 'From: '.$field_email."\r\n";

Zmieniłem zalezną
z
$field_email
na
$mail_to

W skrócie, Home.pl nie pozwala już na bezimienne maile. Mail ze strony musi mieć podkładkę maila z ich serwera, czyli Mail wysyłający i odbierający