Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Błąd funkcji mail()
Forum PHP.pl > Forum > Przedszkole
Wolfie
Witam,

Mam skrypt ktory wysyła do administratora maila jezeli wystąpi błąd na serwerze dla przykładu błąd 404
Oto czesc skrytpu:

  1. <?php
  2.  
  3.    function email_admin($error_no, $error_output, $full_date, $full_time, $request_page) {
  4.        
  5.        $to = "Administrator <jakisadres[malpa]gmail.com>";
  6.        $subject = "Problem z Apache";
  7.        
  8.        $body = "<html>";
  9.        $body .= "<head>";
  10.        $body .= "<title>Błąd na serwerze Apache</title>";
  11.        $body .= "</head>";
  12.        $body .= "<body>";
  13.        $body .= "Błąd wystąpił w dniu <b>".$full_date."</b> o godzinie".$full_time."</b><br>";
  14.        $body .= "Był to błąd o numerze <b>".$error_no."</b><br>";
  15.        $body .= "Strona która spowodowała wygenerowanie błędu: <b>".$request_page."</b><br>";
  16.        $body .= "Użytkownikowi został wyświetlony następujący komunikat:".$error_output;
  17.        $body .= "</body>";
  18.        $body .= "</html>";
  19.        
  20.        $headers = "MIME-Version: 1.0r\n";
  21.        $headers .= "Content-type: text/html; charset=utf-8r\n";
  22.        
  23.        $headers .= "From: Serwer Apache <jakisadres[malpa]gmail.com>r\n";
  24.        $headers .= "CC: jakisadres[malpa]gmail.comr\n";
  25.        
  26.        mail($to, $subject, $body, $headers) or die("error");
  27.    }
  28.    
  29.    $date = getdate();
  30.    $full_date = $date['weekday'].", ".$date['month']." ".$date['mday'].", ".$date['year'];
  31.    $full_time = $date['hours'].":".$date['minutes'].":".$date['seconds'].":".$date['year'];
  32.    
  33.    
  34.    $error_no = $_SERVER['QUERY_STRING'];
  35.    $request_page = $SERVER['REQUEST_URI'];
  36.    
  37.    switch ($error_no) {
  38.        case 400:
  39.            $error_output = "<h1>Strona błędu - &quot;Błędne żądanie &quot; (Kod błędu: 400)</h1>";
  40.            $error_output .= "Przeglądarka przesłała błędne żądanie.<br>";
  41.            $error_output .= "<a href=\"mailto:sysadmin@localhost.com\">Skontaktuj sie z administratorem systemu";
  42.         $error_output .= " jeśli uważasz ze ten błąd nie powinien mieć miejsca";
  43.            
  44.         email_admin($error_no, $error_output, $full_date, $full_time, $request_page);
  45.         break;
  46. ?>


Teraz pytanie:

Czy adres mailowy zdefiniowany w pliku php.ini ma cokolwiek wspolnego z tym adresem mail ktory jest wpisany tutaj jako adres nadawcy maila ?
No i druga sprawa czy widzi tutaj ktos jakis błąd bo funkcja mail generuje mi błąd w tej linijce :

  1. <?php
  2. mail($to, $subject, $body, $headers) or die("error");
  3. ?>


Czyli poprostu wyswietla mi sie błąd
Cytat
error


Moim zdaniem wszystko wyglada prawidlowo tylko nie wiem jak to jest z tymi adresami mail, czy wszystkie adresy To:, From: i Cc mogą być takie same ? Bo w skrypcie mam taki sam adres we wszystkich polach.....
KCG
Masz smtp na serwerze? Włącz wyświetlanie wszystkich błędów i bez tego die() mail() powinno coś wygenerować raczej.
Wolfie
Generuje cos takiego :

Cytat
Array ( [type] => 2 [message] => mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() [file] => C:\Apache\htdocs\error.php [line] => 31 ) 1


A moje ustawienia w php.ini to :
Cytat
[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25


Ktos moze powiedziec co moze byc nie tak ?
KCG
Nie masz serwera SMTP, ściagnij sobie jakiś Free SMTP Server, czy coś, ale generalnie to lepiej testuj na jakimś zewnętrznym, który ma obsługę mail(), z darmowych chyba yoyo. smile.gif
Wolfie
Czyli wystarczy ze zainstaluje sobie ten sciagniety darmowy SMTP i juz bedzie smigac czy jeszcze jakies ustawienai w php.ini bede musial zmienic ?

P.S. Dzieki za odpowiedz, w koncu wiem o co biega , od wczoraj poruszylem ten temat 3 razy ale nikt nie byl laskawy napisac tego jednego konkretnego pomocnego zdania smile.gif
KCG
Wtedy mogą wyniknąć nowe problemy, no ale próbuj, będziemy myśleć tongue.gif
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.