2012-05-14 12 views

Odpowiedz

11

Dobrze mail() po prostu zwraca wartość boolowską w zależności od tego, czy wiadomość została pomyślnie zaakceptowana do dostarczenia. Z php.net stronie:

Zwraca TRUE jeśli poczta została pomyślnie przyjęta na dostawę, fałszywe inaczej.

Ważne jest, aby pamiętać, że tylko dlatego, że wiadomość została przyjęta do dostarczenia , NIE oznacza to, że poczta faktycznie dotrze do docelowego miejsca docelowego .

Można przetestować, czy nie została "wysłana", jednak sprawdzenie, czy została dostarczona, to inna historia.

+0

elektronicznej() zwraca true robi oznacza, że ​​wiadomość e-mail została pomyślnie przesłana. możesz odzyskać wiadomość "brak dostarczenia poczty" z serwera, który odbiera e-mail (np. brak takiej nazwy użytkownika) po kilku minutach – jondinham

+9

Myślę, że to właśnie powiedziałem ?! –

+0

o tak, masz rację :) +1 – jondinham

2

z docs.

„zwraca prawdę, jeśli poczta została pomyślnie przyjęta na dostawę, FAŁSZ inaczej

Ważne jest, aby pamiętać, że tylko dlatego, że poczta została przyjęta na dostawę , NIE oznacza to, że poczta rzeczywiście dotrze do zamierzonego celu. "

0

Sama funkcja mail() po prostu informuje, że skonfigurowany adres e-mail jest prawidłowy i zostanie wysłany do mojego serwera poczty e-mail.

Musisz sprawdzić osobno, czy adres e-mail jest zgodny z prawem. Dobry artykuł można znaleźć: here

Jeśli te dwie metody nie działają dobrze, możesz użyć metody "spamu" przy użyciu obrazów i plików dziennika serwera.

9

Zgodnie Ben odpowiadać powodzeniem można sprawdzić dostawa e-mail jak poniżej

$result = mail('[email protected]', 'Test Subject', $message); 
if(!$result) { 
    echo "Error"; 
} else { 
    echo "Success"; 
} 

Dla lepszego efektu można użyć PHPMailer. Kliknij poniższy link, aby uzyskać szczegółową dokumentację programu PHPMailer.

http://phpmailer.worxware.com/index.php?pg=tutorial

if(!$mail->Send()) { 
    echo 'Message was not sent.'; 
    echo 'Mailer error: ' . $mail->ErrorInfo; 
} else { 
    echo 'Message has been sent.'; 
} 
+0

Dzięki za link Chauhan. – Sunny

-3

Można użyć $_SERVER['REMOTE_ADDR'] w PHP otrzymywać zdalny adres IP użytkownika.

Zastosowanie tak:

<?php 

    $ip = $_SERVER['REMOTE_ADDR']; 
    echo "User's IP address is: ".$ip; 

?> 
Powiązane problemy