Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne]Wszystko dobrze, a maile nie dochodzą
Forum PHP.pl > Forum > Przedszkole
artgrus
Witam.

Ostatnio potrzebowałem funkcji mail(), więc skonfigurowałem wszystko jak należy.

Poniżej wklejam link z kąd krok po kroku konfigurowałem (żeby niebyło niedomówień).

Configuring PHP under Windows to use Gmail or External SMTP Server [SSL]


Prosty formularz w PHP stworzyłem, formularz wypełniłem, przycisk kliknąłem.

Komunikat pojawił mi się że wszystko ok, żadnych błędów nie było (czyli że konfiguracja ok), aczkolwiek maile mi nie dochodzą.

Pomimo że wiadomość wysłano, to żadnego maila na skrzynce o adresie który podałem w skrypcie PHP (obsługującym maile) nie dostałem, już godzinę czekam.

Oczywiście używam gmaila.

Jaka może być przyczyna? (Maila wysłałem z WampServer 2, i na nim piszę stronki)
erix
A sprawdziłeś spam? tongue.gif
artgrus
Tak, spam też sprawdzałem, sprawdzam.

Brak spamu.
erix
a co mail zwraca? Pokaż całość swojego skryptu, którego używasz do wysyłki maila.
Marteen
Upewniłeś się, że funkcja mail() jest dostępna na Twoim serwerze?
artgrus
Plik nosi nazwę: mail.php

  1.  
  2. <?php
  3. if (isset($_POST['imie'])) {
  4. $imie = $_POST['imie'];
  5. $email = $_POST['email'];
  6. $tresc = $_POST['tresc'];
  7.  
  8. $tresc = 'Imie i nazwisko: : '.$imie."\n\n";
  9. $tresc .= 'Email: '.$email."\n\n";
  10. $tresc .= 'Tresc:'."\n".$tresc;
  11. $odbiorca = 'moj_mail@domena.pl';
  12. $temat = 'Wiadomość Panie biggrin.gif';
  13. $naglowki = 'From: Test';
  14. $wyslij = mail($odbiorca, $temat, $tresc, $naglowki);
  15. if ($wyslij) {
  16. echo 'Wiadomość została wysłana';
  17. } else {
  18. echo 'Nie udalo sie wyslac wiadomosci';
  19. }
  20. }
  21. ?>
  22.  


  1.  
  2. <form action="mail.php" method="post">
  3. Twoje imie: <input type="text" name="imie"> <br>
  4. Twoj email: <input type="text" name="email"> <br>
  5. Tresc: <textarea name="tresc"></textarea> <br>
  6. <input type="submit" value="Wyslij">
  7. </form>
  8.  



Zwraca: wiadomość została wysłana.

Sprawdziłem też czy funkcja jest dostępna na serwerze, takim kodem:

  1. <?php
  2.  
  3. // funkcja sprawdzajaca dostepnosc funkcji na serwerze
  4. function spr_funkcji($funkcja) {
  5.  
  6. if (function_exists($funkcja)) {
  7. echo "Funkcja <strong>$funkcja</strong> jest dostepna na serwerze.";
  8. }
  9. else {
  10. echo "Funkcja <strong>$funkcja</strong> nie jest dostepna na serwerze.";
  11. }
  12. }
  13.  
  14. // sprawdzamy, czy funkcja mail() jest dostepna
  15. spr_funkcji('mail');
  16.  
  17. ?>


Pokazuje mi: "Funkcja mail jest dostpna na serwerze"

Mimo że serwer ma włączoną funkcję mail i ją obsługuje, oraz że formularz jest wzięty z podręcznika, to nadal nie wiem dlaczego maile które niby są wysyłane nie dochodzą na moją skrzynkę pocztową.

Sprawdzam co chwila, niemam żadnych wiadomosci.

Spam też jest czysty, w ostatnich 30 dniach nie dostałem żadnego spamu.

Oczywiście sendmaila też mam, zrobiłem krok po kroku z linka w pierwszym poście. I nadal nic.

Dlaczego tak jestquestionmark.gif Niemam pojęcia.

erix
A wiesz, że pole from powinno mieć jeszcze ustalonego maila?
artgrus
Użytkowniku erix.

Poszedłem za twoją radą i zmodyfikowałem nieco nagłówki. Teraz wyglądają one tak:

  1. $naglowki = 'From: Test <mail@domena.pl>'."\n";
  2. $naglowki .= 'Reply-To: mail@domena.pl';


albo tak:

  1. $naglowki = "From: Test <mail@domena.pl>\n";
  2. $naglowki .= "Reply-To: mail@domena.pl";


Lecz nadal maile nie dochodzą, chyba to nie było to.
thek
Spróbuj pokombinować z tym smile.gif
  1. $to=email_odbiorcy;
  2. $header="MIME-Version: 1.0\n";
  3. $header.="Content-Type: text/html; charset=tu_charset_odpowiedni\n";
  4. $header.="From:adres_mail_nadawcy\n";
  5. $mailsend=mail($to, $temat, $wiadomosc, $header);
Różnie bywa z tymi nagłówkami i znakami końca linii oraz czasem adresem mail i spacją pomiędzy nim a dwukropkiem. Sprawdź najwyżej kombinacji kilka smile.gif
artgrus
Próbowałem tak jak thek radził.

Dodawałem odstępy przed i za znakami końca linii, między dwukropkami przed i po, odstępy między zmienną a cudzysłowami, kolejność nagłówków, metodami stosowania -- apostrof / cudzysłów.

Nie pomogło. sadsmiley02.gif
Ramzaa
A zobacz może na localu czy to działa.
artgrus
Do użytkownika Ramzaa : wysyłanie maili testuję na localhost.

Na serwerze w necie to działa normalnie. Wszystko o co w tych postach mowa to na localhost funkcjonuje.
glh
Sprawdź to:

  1. $naglowki="MIME-Version: 1.0\n";
  2. $naglowki.="Content-Type: text/html; charset=windows-1250\n\n";
  3. $tresc=" <table>
  4. <tr>
  5. <td style=\"background:black;color:white;text-align:center;\"><b>Wiadomosc z PHP</b></td>
  6. </tr>
  7. </table>";
  8.  
  9. if (mail("jakis@adres.pl", "Temat wiadomosci",$tresc,$naglowki)) echo "Wyslano"; else echo "Kicha."
artgrus
wklepałem ten kod co podesłał mi glh

Komunikat pojawił się: Wysłano


Ale jak wiadomości na gmailu nie było, tak nie ma.

Przykro mi, ale to też nie działa.

Spróbowałem nawet zmienić ścieżkę sendmaila i w php.ini zmienić lokalizację,

ale to też nie działa.


Nadal mi pokazuje że mail wysłano, ale do skrzynki pocztowej nie dociera.
thek
Z localhosta wysyłasz? A chociaż jakikolwiek serwer poczty masz zainstalowany by to pchnął?
thomson89
Jaki system operacyjny masz?
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.