W sytuacji, gdy nasz skrypt PHP ma za zadanie wysłać wiadomość do wskazanego odbiorcy, warto wyeliminować kilka podstawowych problemów jakie się w takiej sytuacji pojawiają. Przede wszystkim zawsze trzeba sprawdzić, czy w ogóle otrzymaliśmy jakiś adres (zwłaszcza w przypadku formularzy, np. subskrypcji newslettera). Po drugie, warto zbadać, czy podany ciąg znaków jest poprawnym adresem email.
Do niedawna sprawa była prosta, ponieważ nazwy użytkowników / loginy i adresy hostów składały się tylko ze znaków alfabetu łacińskiego z dodatkiem cyfr i kilku dodatkowych symboli takich jak kropki, -, _ oraz +. Ostatnio ICANN wprowadziła nowe zasady i dopuściła do użytku pierwsze domeny pisane w alfabecie arabskim. Po nich pojawią się następne.
Dlatego dawne metody, które polegały na zastosowaniu wyrażeń regularnych warto zastąpić czymś o wiele prostszym i dającym pewność, że w przyszłości nie będzie trzeba robić ręcznych aktualizacji.
Na szczęście w PHP jest wbudowana funkcja filter_var, która służy do wstępnej walidacji ciągów znaków. Jej użycie w tym przypadku może wyglądać następująco:
if(filter_var($_REQUEST['email'], FILTER_VALIDATE_EMAIL))
Funkcja filter_var zwraca ciąg znaków podany w pierwszym argumencie jeśli jest on poprawny lub FALSE jeśli nie spełnia warunku podanego w drugim argumencie. Do dyspozycji mamy kilka różnych stałych, które pozwalają na sprawdzanie różnych rodzajów ciągów (np. liczby, URL). Spis filtrów znajduje się tutaj.

dzieki za info