Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: klasa phpmailer - obsługa błędu wysyłki
Forum PHP.pl > Forum > PHP
fiasko
Wysyłałem sobie emaile pod nieprawidłowe adres, które wiem, że nie istnieją . Jak obsługiwać błędy wysłania ?

Zrobiłem tak:

$result = $mail->Send();

if ( $result == true){

echo'Wiadomość wysłano';
}
else {
echo'Wiadomość nie została wysłana na adresy e-mail.<br>';
}

no i tak pokazuje, że wiadomość wysłano.
nospor
Cytat
które wiem, że nie istnieją

Cytat
no i tak pokazuje, że wiadomość wysłano.

Bo klasa PHPMailer służy do wysyłania maili a nie do sprawdzania, czy podany adres e-mail istnieje.
fiasko
Tak ale jak wysyłam emaila to chcę wiedzieć czy doszedł do drugiego serwera. Funkcja mail to umożliwia .

Jesteś pewny, że nie ma w klasie metody, która o tym informuje ?
nospor
Cytat
Funkcja mail to umożliwia
Nie kojarzę, by funkcja mail dawała ci info, że podany email nie istnieje.
fiasko
Nie tyle co nie istnieje co zwraca, że wiadomość została wysłana z niepowodzeniem.
nospor
Dobrze, to napiszę inaczej:
nie kojarzę by funkcja mail pisała, że wiadomośc została wysłana z niepowodzeniem w przypadku, gdy podany adres e-mail nie istnieje.
fiasko
właśnie przetestowałem - masz rację niestety:(

Jak wobec tego wykryć, że wysłany emial nie doszedł do adreseta ?
nospor
serwer adresata zwraca wiadomość zwrotną, gdy coś nie tak jest z adresem, na który próbujesz coś wysłać. Musisz więc odbierać mailie zwrotne i je analizować smile.gif
Tylko po co się tym w ogóle przejmujesz? Wysłałeś i już. Jak ktoś podał lipny adres to jego sprawa a nie Twoja.
fiasko
Tak, ale jak mam w bazie 30 tyś adresów klientów to wolę oszczędzić serwer.

Jak wobec tego odczytać Mail Delivery System [Mailer-Daemon@dddddd.com.pl] z serwera poczty gdy wysyłam funkcją mail ?




Czemu nie przychodzi mi email z informacją od mojego serwera, że adres email na ktory wysłałem pocztę nie istnieje ?
Jak wysyłam przez smtp to otrzymuję takją informację . Natomiast jak używam funkcji mail to już nie mam tego rodzaju informacji.
Bags_Bunny
Sprawdzenie istnienia 30 tysięcy maili niewątpliwie oszczędzi Ci serwer bardziej, niż wysłanie kilku mniej. Po prostu wysyłaj i monitoruj zwroty (polecam Zend Mail). Jeśli otrzymasz zwrot, to usuwaj email z bazy i na przyszłość już go nie użyjesz.
A poza tym, to ten temat (jak i większość tematów na tym forum) jest poruszany średnio raz na 3 dni. Skorzystaj z wyszukiwarki i nie zaśmiecaj forum. Np. tutaj: Temat: PHP Sprawdzenie adresu e mail - sprzed kilku dni, wciąż na pierwszej stronie.

Co do Twojego ostatniego pytania - ustawiłeś poprawny adres nadawcy? Może zwroty przychodzą na jakiś zrzutowy adres serwer.
fiasko
No w tym problem, że zwrotów nie dostaję gdy wysyłam je przez funkcję mail z poziomu php.

Jak to włączyć ? mam exim
Bags_Bunny
Na początek spróbuj dodać nagłówki From i Reply-To.
fiasko
  1. <?
  2. function send_mail(){
  3. $tresc .= "test";
  4.  
  5.  
  6.  
  7. $adres = "dane3453647@o2.pl";
  8. $temat = "Test wiadomości";
  9.  
  10.  
  11.  
  12. $naglowki = "Content-type: text/plain; charset=iso-8859-2\n" .
  13. "From: admin@xxx.pl\n" .
  14. "Reply-to: admin@xxx.pl\n";
  15.  
  16. // wyslij maila
  17. $wyslany = mail($adres,$temat,$tresc,$naglowki);
  18. return $wyslany;
  19. }
  20. $rezult = send_mail();
  21. echo $rezult;
  22.  
  23. ?>


Tak wysyłam w ramach testów. Powinienem dostać zwrotkę na admin@xxx.pl - niestety nie dostaje.
linx
A niby z jakiej racji miał byś dostać zwrotkęquestionmark.gif
Przecież wysyłasz maila tylko na adres dane3453647@o2.pl
fiasko
A mój serwer poczty to co ? Sam sobie nie powinien wysłać ?
abort
Wysłać? wysłać czego? Zwrotkę? A niby z jakiej racji?

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.