mail() problem

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
SauroNet
Posty: 14
Rejestracja: czw gru 09, 2004 8:52 pm
Lokalizacja: Szczecin
Kontakt:

mail() problem

Post autor: SauroNet »

Witam, mam skrypt formularza ktory dzialal sobie poprawnie, do momentu az na serwerze nie zaszly pewne zmiany. Oto skrypt:
[php]
<?php
if (empty($_POST['submit'])) {
echo "<table border=\"0\"><form method=\"post\">

<tr>
<td>Name:</td>
<td><input type=\"text\" name=\"imie\" style=\"width: 200px\" class=\"input\"></td>
</tr>
<tr>
<td>E-mail:</td>
<td><input type=\"text\" name=\"email\" style=\"width: 200px\" class=\"input\"></td>
</tr>
<tr>
<td>Text:</td>
<td><textarea name=\"tresc\" style=\"width: 200px; height: 100px\" class=\"input\"></textarea></td>
</tr>
<tr>
<td> </td>
<td><input type=\"submit\" name=\"submit\" value=\"Send\" class=\"input\"> 
<input type=\"reset\" value=\"Clear\" class=\"input\"></td></form>
</tr>
</table>";
}
elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email'])) {
$message = "Treść wiadomości:<br>$_POST[tresc]<br>Wysłał: $_POST[imie]<br>e-mail: $_POST[email]";
$header = "From: $_POST[imie] <$_POST[email]>";
@mail("ktos@gdzies","stronka- Formularz WWW","$message","$header")
or die('Nie udało się wysłać wiadomości');
echo "<div align=\"center\">Wiadomość została wysłana.</div>";
}
else echo "<div align=\"center\">Wypełnij wszystkie pola formularza.</div>";

?>[/php]
A oto odpowiedz na moje pytanie jakie zadalem wlascicielowi serwera:
Przyczyną może być nieprawidłowa konstrukcja nagłówków wysyłanych maili.
Do niedawna akceptowaliśmy niepoprawnie adresowane maile pochodzące ze skryptów cgi i php. Obecnie akceptowane są tylko poprawne przesyłki. Maile
których nadawca i odbiorca nie są obsługiwani przez nasze maszyny zostają automatycznie odrzucane. Przynajmniej jeden z adresów (nadawca i/lub odbiorca)
musi być obsługiwany przez nas.

Przykłady rozwiązań:
http://pl.php.net/manual/pl/ref.mail.php
Tylko ze od kilku dni siedze nad tym i nadal nie moge wysylac maila. Caly czas mam blad:
Warning: mail() has been disabled for security reasons in /home/virtuale/gdzies.pl/www/kontakt.php on line 27
Prosze o pomoc!!!
Z gory dzieki!
123456
Zaczyna działać
Zaczyna działać
Posty: 514
Rejestracja: sob paź 28, 2006 1:19 pm

...

Post autor: 123456 »

Przynajmniej jeden z adresów (nadawca i/lub odbiorca)
musi być obsługiwany przez nas
Jak napisal wlasciciel serwera przynajmniej jeden z adresow musi byc obslugiwany przez Twoj serwer. Popatrz na to co masz w kodzie:
[php]<?php
$header = "From: $_POST[imie] <$_POST[email]>";
mail("ktos@gdzies",(...)
?>[/php]
Pod From podajesz ten sam adres co adres odbiorcy maila.

Teraz rozumiesz gdzie masz blad?
sztacho
Nowy
Nowy
Posty: 96
Rejestracja: pn paź 23, 2006 10:03 am
Lokalizacja: Lublin

Re: mail() problem

Post autor: sztacho »

Miałem (mam) coś podobnego. To oznacza to co dosłownie napisano. Wyłączona jest ta funkcja ze względów bezpieczeństwa :) Trzeba ich męczyć :)
123456
Zaczyna działać
Zaczyna działać
Posty: 514
Rejestracja: sob paź 28, 2006 1:19 pm

Re: mail() problem

Post autor: 123456 »

Wyłączona jest ta funkcja ze względów bezpieczeństwa
To, ze mail() jest wylaczony to nie jest problem bo mozna wyslac maila na wiele innych sposobow. Problemem jest to, ze serwer pocztowy nie przepuszcza maili ktore nie maja w nadawcy adresu usera tego serwera. Zrobili tak pewnie ze wzgledu na zabezpieczenie przed spamem i przed obciazaniem serwera - maila moze wyslac tylko ten kto ma konto na tym serwerze a nie przypadkowa osoba (np. spamer).
SauroNet
Posty: 14
Rejestracja: czw gru 09, 2004 8:52 pm
Lokalizacja: Szczecin
Kontakt:

Re: mail() problem

Post autor: SauroNet »

Czyli dla domeny domena.com jak bedzie wygladal ten skrypt? Bo podstawiam za nadawce mij adres e mail znajdujacy sie na tym serwerze i dalej nie dziala :(
Salfunglandyare
Nowy
Nowy
Posty: 88
Rejestracja: śr sty 24, 2007 9:52 pm
Lokalizacja: Kuj-Pom.

Re: mail() problem

Post autor: Salfunglandyare »

Nikt nie powiedział że musisz używać mail(), żeby wysyłać maile :) Nikt też nie powiedział, że musisz wysyłać przez ichni serwer SMTP. Zainteresuj się np. PHPMailer'em

pzdr.
ODPOWIEDZ